Repolode
Snapchat

Snapchat/KeyDB

支持多线程、兼容 Redis 协议的内存数据库,可直接替换 Redis 使用。

可替代:Redis

Star
12,498
Fork
679
未关闭 Issue
295
最近提交
16天前

这是什么?

KeyDB 是 Redis 的高性能分支,重点在多线程、内存效率和吞吐量。它完整兼容 Redis 协议、模块和脚本,现有 Redis 部署可以直接替换,无需修改客户端或应用代码。

在 Redis 功能之上,KeyDB 增加了双活复制(active-active replication),多个实例可同时读写并保持同步,便于基于 TCP 的负载均衡和热备切换。它还支持基于本地 SSD 的 FLASH 存储、子键过期,以及可选的 S3 备份与加载。其 MVCC 架构使 KEYS、SCAN 等命令不会阻塞数据库。

目前项目在 Linux 上编译和测试。线程数、客户端均衡等行为可通过 server-threads 等配置项调整,默认构建启用 TLS。

核心功能

  • 01多线程处理请求,兼容 Redis 协议、模块和脚本。
  • 02双活复制,多个实例可同时接受读写并保持同步。
  • 03支持基于本地 SSD 的 FLASH 存储(实验性)。
  • 04支持子键过期,KEYS 与 SCAN 基于 MVCC 执行而不阻塞数据库。
  • 05可选择直接备份到 AWS S3 或从中加载数据。

适用场景

  • 在不更换硬件的前提下,替换现有 Redis 部署以提升吞吐量。
  • 构建需要多实例同时读写的缓存层。
  • 通过单节点处理更多负载,减少服务器数量。

快速上手

  1. 1

    在 Debian/Ubuntu 上安装构建依赖

    sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev
  2. 2

    初始化并更新子模块依赖

    git submodule init && git submodule update
  3. 3

    编译 KeyDB

    make
  4. 4

    在 src 目录中使用默认配置启动服务器

    ./keydb-server

使用前须知

  • 仅在 Linux 上构建和测试,因为它依赖 Linux 的 SO_REUSEPORT。
  • FLASH 存储仍为实验性(beta)功能,请谨慎使用。
  • 没有付费支持,帮助主要通过社区渠道获得。

收录于专题

标签

常见问题

KeyDB 是什么?
支持多线程、兼容 Redis 协议的内存数据库,可直接替换 Redis 使用。 KeyDB 是 Redis 的高性能分支,重点在多线程、内存效率和吞吐量。它完整兼容 Redis 协议、模块和脚本,现有 Redis 部署可以直接替换,无需修改客户端或应用代码。
KeyDB 可以免费使用吗?用的什么许可证?
KeyDB 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
KeyDB 还在维护吗?
活跃维护中。KeyDB 最近一次提交是在 2026年10月22日。
KeyDB 适合用来做什么?
在不更换硬件的前提下,替换现有 Redis 部署以提升吞吐量。 构建需要多实例同时读写的缓存层。 通过单节点处理更多负载,减少服务器数量。
KeyDB 怎么安装和运行?
在 Debian/Ubuntu 上安装构建依赖: sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev 初始化并更新子模块依赖: git submodule init && git submodule update 编译 KeyDB: make 在 src 目录中使用默认配置启动服务器: ./keydb-server
在哪里获取 KeyDB?
源代码和安装说明在 GitHub 上:https://github.com/Snapchat/KeyDB

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目