Apache Kvrocks 2.17.0 介绍与选型指南

Apache Kvrocks 2.17.0 认知篇:RocksDB 存储引擎与 Redis 协议兼容的分布式 KV 数据库,Namespace 多租户、binlog 主从复制、Sentinel 高可用与集群模式解析,官方快速上手示例与 Redis/Valkey/Dragonfly 选型对比,信息基于官方来源联网溯源(查询日期 2026-10-18)。

Apache Kvrocks2026/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):

  1. 安装依赖(Ubuntu/Debian 官方示例命令):
sudo apt update
sudo apt install -y git build-essential cmake libtool python3 libssl-dev
  1. 克隆并编译(官方原文命令):
git clone https://github.com/apache/kvrocks.git
cd kvrocks
./x.py build  # `./x.py build -h` 可查看更多选项

官方文档说明:编译顺利时将在 build 目录生成二进制文件 kvrocks。

  1. 启动服务并连接(官方原文命令):
./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.04,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.28.x 系列持续小版本迭代Redis 生态原生;RDB/AOF 持久化;模块体系(JSON/时序/搜索等)
Valkey 9.1.2Redis 开源分支延续(Linux 基金会)BSD-3-Clause(源码 COPYING 实查)27,449(valkey-io/valkey)9.1.2社区节奏较快自 Redis 转向源可用许可前分叉,兼容 Redis 数据结构与客户端生态
Dragonfly 2.0.2多线程共享内存的高性能内存 KVBSL 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 是当前最合适的磁盘型落点。

八、参考链接