Apache Kvrocks 2.17.0 介绍与选型指南
Apache Kvrocks 2.17.0 认知篇:RocksDB 存储引擎与 Redis 协议兼容的分布式 KV 数据库,Namespace 多租户、binlog 主从复制、Sentinel 高可用与集群模式解析,官方快速上手示例与 Redis/Valkey/Dragonfly 选型对比,信息基于官方来源联网溯源(查询日期 2026-10-18)。
Apache Kvrocks 2.17.0 介绍与选型指南
目标:本篇为 A1 认知篇,基于 Apache Kvrocks 官方网站、GitHub 官方仓库 Release 与官方文档联网溯源整理(查询日期 2026-10-18),不涉及本地安装实测;本地安装实测属 B1 安装指南职责。
一、信息基准
1.1 查询日期与版本依据
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 本次介绍版本 | Apache Kvrocks 2.17.0(官方最新稳定版) |
| 版本依据一 | GitHub 官方仓库 apache/kvrocks releases/latest 重定向实查:tag v2.17.0 |
| 版本依据二 | GitHub Releases Atom feed 交叉取证:2.17.0 发布时间 2026-09-19 |
| 版本依据三 | ASF 官方分发服务器 downloads.apache.org/kvrocks/ 目录实查,最高版本目录为 2.17.0/ |
1.2 官方来源清单
| 来源 | URL |
|---|---|
| 项目主页 | https://kvrocks.apache.org/ |
| 官方文档(Getting started) | https://kvrocks.apache.org/docs/getting-started |
| 支持命令清单 | https://kvrocks.apache.org/docs/supported-commands/ |
| GitHub 官方仓库 | https://github.com/apache/kvrocks |
| Releases(版本溯源) | https://github.com/apache/kvrocks/releases |
| ASF 分发服务器 | https://downloads.apache.org/kvrocks/ |
二、软件概述
本文介绍 Apache Kvrocks 2.17.0(官方最新稳定版,2026-09-19 发布)。Kvrocks 官方定位为"A distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol"——即以 RocksDB 为存储引擎、兼容 Redis 协议的分布式键值 NoSQL 数据库(来源:kvrocks.apache.org 首页,查询日期 2026-10-18)。
- 许可:Apache License 2.0。
- 维护方:Apache 软件基金会(GitHub 组织 apache/kvrocks,发行包由 ASF 分发服务器正式托管)。
- 形态:独立服务进程,客户端直接使用 redis-cli 等标准 Redis 客户端接入;数据落盘于 RocksDB(LSM-Tree),以磁盘存储换取大容量与低成本。
- 社区活跃度:GitHub 4,463 stars / 678 forks(仓库页面 stargazerCount 字段实查,查询日期 2026-10-18)。
- 版本节奏:2026 年内 2.15.0(2026-02-27)→ 2.16.0(2026-06-21)→ 2.17.0(2026-09-19),大致保持一个季度一个 minor 版本(GitHub Releases Atom feed 实查)。
三、核心架构与核心概念
3.1 架构组件
官方首页列出的四大能力对应四个核心构件(来源:kvrocks.apache.org 首页,查询日期 2026-10-18):
| 构件 | 职责 |
|---|---|
| 存储引擎(RocksDB) | 以 LSM-Tree 将键值数据持久化到磁盘,是 Kvrocks 与纯内存 Redis 最本质的差异 |
| Namespace(命名空间) | 类似 Redis 的 SELECT 逻辑库,但每个 namespace 配备独立 token 用于鉴权,面向多租户隔离 |
| Replication(复制) | 基于 binlog 的异步主从复制,官方以 MySQL binlog 复制机制作类比 |
| High Availability(高可用) | 直接复用 Redis Sentinel 对主节点故障执行故障转移 |
| Cluster(集群) | 采用中心化集群管理,同时兼容任意 Redis cluster 客户端访问 |
3.2 核心概念
- Redis 协议兼容:服务端实现 RESP 协议,redis-cli 可直接连接(官方 Getting started 默认端口 6666);兼容范围为命令子集,逐命令支持情况以官方 Supported commands 清单为准。
- Namespace + Token:将"逻辑库选择"与"访问令牌"绑定,替代单实例场景下的 requirepass 粒度,实现租户级隔离。
- binlog 复制:写操作序列化为 binlog 流向从节点重放,与 Redis 原生复制相比,复制位点语义更接近数据库 WAL 体系。
- 磁盘存储折衷:内存主要用于缓存热点数据与索引,容量上限受磁盘而非内存约束,成本结构接近磁盘数据库。
四、功能特性
以下特性均可在官方首页与 Getting started 文档查证(查询日期 2026-10-18):
| 特性域 | 说明 |
|---|---|
| 协议兼容 | 兼容 Redis 协议,官方文档演示以 redis-cli 直连(端口 6666) |
| 大容量持久化 | RocksDB 存储引擎,键值数据落盘,适合超出内存预算的数据规模 |
| 多租户 | Namespace 机制,每个 namespace 独立 token 鉴权 |
| 主从复制 | 基于 binlog 的异步复制 |
| 故障转移 | 支持 Redis Sentinel 接管故障转移 |
| 集群模式 | 中心化集群管理,可被 Redis cluster 协议客户端访问 |
| 源码构建 | 提供 ./x.py build 统一构建入口,二进制生成于 build 目录 |
五、快速上手(引自官方文档,不本地实测)
官方 Getting started 提供多种运行路径,本篇摘录源码构建运行路径(原文引自 https://kvrocks.apache.org/docs/getting-started ,查询日期 2026-10-18):
- 安装依赖(Ubuntu/Debian 官方示例命令):
sudo apt update
sudo apt install -y git build-essential cmake libtool python3 libssl-dev
- 克隆并编译(官方原文命令):
git clone https://github.com/apache/kvrocks.git
cd kvrocks
./x.py build # `./x.py build -h` 可查看更多选项
官方文档说明:编译顺利时将在 build 目录生成二进制文件 kvrocks。
- 启动服务并连接(官方原文命令):
./build/kvrocks -c kvrocks.conf
Now you can use the redis-cli to run the kvrocks server as Redis on port 6666(官方原文):
redis-cli -p 6666
说明:完整依赖清单覆盖 Ubuntu/Debian、CentOS/RHEL、openSUSE、Arch Linux 与 macOS,以官方 Getting started 页面为准;命令支持范围以官方 Supported commands 清单为准。本地编译与压测属 B1 安装指南职责。
六、适用场景与限制
6.1 适用场景
- 大容量低成本 KV 存储:数据规模超出内存预算、可接受磁盘延迟时,用磁盘存储摊薄成本,同时保留 Redis 客户端生态。
- Redis 冷热分层/降本迁移:Redis 协议兼容使存量 Redis 客户端代码几乎无需改写即可切换,适合把低频大键值集合迁到磁盘型实例。
- 多租户键值服务:Namespace + token 提供租户级隔离与鉴权,适合平台化统一供给 KV 能力。
- 可运维性优先的持久化 KV:binlog 主从 + Sentinel 故障转移,沿用 MySQL/Redis 双生态的成熟运维模型。
6.2 限制与风险
- 命令兼容是子集:并非 Redis 全量命令对等,上线前需逐命令核对官方 Supported commands 清单。
- 延迟与吞吐特性不同:LSM-Tree 落盘路径带来写放大与 compaction 开销,热点小键低延迟场景仍应优先纯内存方案。
- 异步复制存在窗口:binlog 异步复制在主节点故障时存在未同步数据丢失风险,需在架构上评估。
- 社区规模相对小:4,463 stars 与 Redis/Valkey 相差一个数量级,第三方工具链适配需要自行验证。
七、同类选型对比
对比维度:开源许可、社区活跃度(GitHub stars + 最近发版)、版本节奏、兼容矩阵。stars 为 GitHub 仓库页面 stargazerCount 字段实查,发版信息为 GitHub releases/latest 重定向与 Atom feed 实查,查询日期 2026-10-18。
| 项目 | 定位 | 许可 | GitHub stars | 最近发版(实查) | 版本节奏 | 兼容矩阵 |
|---|---|---|---|---|---|---|
| Apache Kvrocks 2.17.0 | 磁盘持久化分布式 KV,兼容 Redis 协议 | Apache-2.0 | 4,463(apache/kvrocks) | 2.17.0(2026-09-19) | 约季度一个 minor(2026 年 2/6/9 月各一发) | RESP 协议命令子集;Redis Sentinel 复用;Redis cluster 客户端兼容;RocksDB 落盘 |
| Redis 8.10.2 | 内存数据结构服务器(事实标准) | Redis 8 起三选一:RSALv2 / SSPLv1 / AGPLv3(来源:redis.io/legal/licenses) | 76,930(redis/redis) | 8.10.2 | 8.x 系列持续小版本迭代 | Redis 生态原生;RDB/AOF 持久化;模块体系(JSON/时序/搜索等) |
| Valkey 9.1.2 | Redis 开源分支延续(Linux 基金会) | BSD-3-Clause(源码 COPYING 实查) | 27,449(valkey-io/valkey) | 9.1.2 | 社区节奏较快 | 自 Redis 转向源可用许可前分叉,兼容 Redis 数据结构与客户端生态 |
| Dragonfly 2.0.2 | 多线程共享内存的高性能内存 KV | BSL 1.1(源码 LICENSE.md 实查,非 OSI 开源许可) | 31,789(dragonflydb/dragonfly) | v2.0.2 | 持续迭代 | 兼容 Redis 生态(官网以 Dragonfly vs Redis 自述定位);多线程架构单节点承载高吞吐 |
选型建议:数据量在内存预算内、追求极致低延迟与最全生态时选 Redis(注意许可条款选择)或 BSD 许可的 Valkey;单节点超高并发内存场景可评估 Dragonfly(留意 BSL 1.1 使用限制);而数据规模大、写入吞吐高、成本敏感且希望沿用 Redis 客户端协议与 Sentinel 运维体系时,Apache Kvrocks 是当前最合适的磁盘型落点。
八、参考链接
- 项目主页:https://kvrocks.apache.org/
- Getting started(快速上手出处):https://kvrocks.apache.org/docs/getting-started
- 支持命令清单:https://kvrocks.apache.org/docs/supported-commands/
- GitHub 官方仓库:https://github.com/apache/kvrocks
- Releases(版本依据):https://github.com/apache/kvrocks/releases
- ASF 分发服务器:https://downloads.apache.org/kvrocks/
- Redis 官方许可说明:https://redis.io/legal/licenses/
- Valkey 官方仓库:https://github.com/valkey-io/valkey
- Dragonfly 官网:https://www.dragonflydb.io/