HotKV 对比 Dragonfly

一款正面对比测量的 Dragonfly 替代方案

HotKV 和 Dragonfly™ 两款服务器都是多线程的,并且都使用 Redis 协议,因此一款 Dragonfly 替代方案必须在细节上赢得切换。线程如何共享数据,数据如何持久化,以及哪些功能内置于服务器。HotKV Ltd 在一台 160 vCPU 的机器上以相同负载测量了两者,并公开了每一个数字,包括那个打平的数字。

Dragonfly

每个线程一个分片

MGET a b c

HotKV

一个共享存储

MGET a b c
示意图,并非测量结果。Dragonfly 为每个线程分配其专属的一段键空间,因此键分布在多段中的命令需要跨线程协调。HotKV 让每个线程都运行在同一个共享存储上。

这款 Dragonfly 替代方案 以单实例运行在一台 160 vCPU 的机器上,在与 Dragonfly 2.0.2 的对比中,于 12 个命令中的 11 个上领先,吞吐量为其 2.0x 到 4.4x。HotKV 针对该 CPU 从源码构建。Dragonfly 2.0.2 以其原版构建运行。在小型机器上差距较小。

即插即用

这款 Dragonfly 替代方案 保持不变的部分

HotKV 实现了 Redis 线路协议。从 Dragonfly 迁移通常只需更改主机和凭据。核心集之外的任何内容请查阅命令参考。

相同的协议

RESP2 和 RESP3,支持 HELLO 协商。HotKV 向客户端报告 Redis 版本 8.4.0,因此客户端库据此选择功能。连接字符串、管道、发布/订阅和事务都像现在一样工作。

相同的客户端和工具

Redis 和 Valkey 客户端库、redis-cli、redis-cli --cluster 以及 GUI 工具无需改动代码即可连接 HotKV 并使用核心命令。

相同的核心命令

300 个核心命令、Lua 脚本和函数库,以及需要时可用的 HotKV 自有命令族。

您已在使用的客户端
$ redis-cli -h <your-hotkv-host> -p 6379 --tls --user app --askpass
> HELLO 3
1# "server" => "hotkv"
2# "version" => "8.4.0"
3# "proto" => (integer) 3
   ... (另外四个字段)
> SET session:4821 "same protocol, every core"
OK
> GET session:4821
"same protocol, every core"
> TAG.SET session:4821 tenant:acme   # 需要时可用的 HotKV 命令
(integer) 1

选择 Dragonfly 替代方案 的理由

团队为何寻找 Dragonfly 替代方案

促使团队寻找 Dragonfly 替代方案 的 Dragonfly 已记录属性,查阅于 2026年10月21日。

01

无共享分片

Dragonfly 将键空间拆分为每个线程一个分片。触及多个分片中键的命令,例如 MSET 或 MGET,需要跨线程协调。HotKV 让每个线程都运行在同一个共享存储上。这一差异正是这个 Dragonfly 替代方案的核心所在。

02

没有仅追加文件

Dragonfly 通过时间点快照持久化。其文档声明它目前不支持 AOF。具备仅追加文件的 Dragonfly 替代方案弥补了这一空白。HotKV 提供快照和 AOF。

03

以 BSL 1.1 源码可用

Dragonfly 以 Business Source License 1.1 授权。其授权允许在您自己的产品或服务内部使用。它不允许作为内存数据存储产品或服务使用,也不允许将 Dragonfly 作为与 DragonflyDB 竞争的托管服务提供。代码在其变更日期转换为 Apache 2.0,按当前许可证文本为 2030 年 11 月 1 日。HotKV 是按其自身许可条款提供的商业软件。

04

向量搜索内置,AI 缓存则没有

Dragonfly 具备向量搜索。提示词缓存、语义缓存、智能体记忆和 LLM 成本跟踪不是服务器的一部分。

实测,而非宣称

这款 Dragonfly 替代方案 的实测结果。HotKV 对比 Dragonfly 2.0.2,在同一台机器上

HotKV Ltd 在同一台 160 vCPU 的机器上,以单实例的形式逐一运行了 HotKV 和 Dragonfly 2.0.2。每一个都获得相同的负载和全部核心。HotKV Ltd 公开了每一个数字以及方法和原始数据。

11 共 12 个
在与 Dragonfly 的对比中 HotKV 测得最高吞吐量的命令数
2.0x 至 4.4x
HotKV 的吞吐量相对 Dragonfly 的倍数,覆盖其领先的 11 个命令(MGET 至 INCR)
PING
Dragonfly 测得高出 0.6%,在负载生成器的限制范围内,因此计为平局

HotKV Ltd 针对该 CPU 从源码构建了 HotKV。Dragonfly 以其原版发布构建运行。两者均以单实例运行。线程数遵循各产品记录的全核心设置,未针对单个产品调优。在核心较少的机器上差距较小。

SET3.4x
HotKV
50.5M*
Dragonfly
15.0M
GET2.7x
HotKV
36.6M*
Dragonfly
13.4M
MGET2.0x
HotKV
4.6M*
Dragonfly
2.3M
SETNX3.8x
HotKV
55.3M*
Dragonfly
14.4M
APPEND2.8x
HotKV
25.1M
Dragonfly
8.9M
INCR4.4x
HotKV
90.8M
Dragonfly
20.6M
LPUSH3.0x
HotKV
31.6M
Dragonfly
10.6M
RPUSH4.0x
HotKV
43.8M
Dragonfly
11.0M
SADD4.2x
HotKV
50.6M*
Dragonfly
12.0M
HSET3.0x
HotKV
29.0M*
Dragonfly
9.8M
MSET3.8x
HotKV
11.3M
Dragonfly
2.9M
PING0.99x
HotKV
125.2M†
Dragonfly
126.0M

每秒操作数,3 次 10 秒运行的中位数。每对柱形按该命令上较快的服务器缩放。

* 受网络限制: 此结果由实例的网络决定,服务器自身的上限更高。

† 受负载生成器限制: 负载生成器机器的 CPU 占用超过 85%,因此这是它们的上限,而非服务器的上限。

Azure D160alds_v7(AMD EPYC 9V45 (Turin),160 个 vCPU),测量于 2026年10月9日。256 字节的值,管道深度 30,预填充 5,000,000 个键并均匀随机读取。三台专用负载生成器机器。每台服务器都以单实例单独运行,并关闭持久化。每一个都获得全部核心(Redis 为 128 个 I/O 线程,即其最大值)。HotKV Ltd 针对该 CPU 从源码构建了 HotKV,并以原版发布构建运行 Dragonfly。 完整方法与结果 · 测试工具与原始数据

并排对比

这款 Dragonfly 替代方案 与 Dragonfly 的逐项功能对比

功能HotKVDragonfly
命令执行多线程。每个核心都在同一个共享存储上读取、解析并执行命令多线程,每个线程一个键空间分片(无共享)
协议RESP2 和 RESP3,支持 HELLO 协商。向客户端报告 Redis 版本 8.4.0RESP2 和 RESP3
开发语言C++20,从零构建C++
许可证商业许可(HotKV Cloud,或本地部署许可证)BSL 1.1
持久化快照和 AOF仅快照,无 AOF
无 fork 快照是。由后台线程写入快照,不 fork 子进程是
向量相似度搜索内置(HNSW、VSIM.*),所有套餐内置
LLM 提示词缓存与语义缓存内置(PCACHE.*、SCACHE.*),HotKV Cloud 上 Performance 及以上套餐否
AI 智能体记忆内置(AMEM.*),HotKV Cloud 上 Performance 及以上套餐否
LLM 令牌与成本跟踪内置(LLMBUDGET.*、LLMSTATS.*),HotKV Cloud 上 Performance 及以上套餐否
Prometheus 端点内置。设置 metrics-port 后,服务器自行提供 /metrics(本地部署)内置
按命令的延迟直方图按命令,内置(LATENCY HISTOGRAM)可选启用的延迟跟踪标志。LATENCY HISTOGRAM 被列为不支持
键标签是(TAG.*)否
纳秒级 TTL是(NEXPIRE、NTTL)否。毫秒级 TTL
服务器平台Linux(x86_64 和 ARM64)Linux(x86_64 和 ARM64)
部署方式HotKV Cloud(Google Cloud,42 个区域)或凭许可证本地部署自行管理或 Dragonfly Cloud

公平起见

Dragonfly 领先于这款 Dragonfly 替代方案 或仅仅有所不同之处

这个 Dragonfly 替代方案 页面只有在也说明这部分时才有用。

  • 在 PING 上,Dragonfly 的测量值比 HotKV 高 0.6%。两者的负载生成器 CPU 使用率都超过 80%,因此 HotKV Ltd 将其计为平局。无论如何,该结果都显示在表格中。
  • Dragonfly 的快照与 HotKV 一样是无 fork 的,并且它自行提供 Prometheus 指标。
  • 在 BSL 1.1 下,Dragonfly 可在您自己的产品内部免费自托管,Dragonfly Cloud 是一项成熟的托管服务。作为 Dragonfly 替代方案的 HotKV Cloud 处于抢先体验阶段。

迁移过来

从 Dragonfly 到这款 Dragonfly 替代方案 的四个步骤

切换到 Dragonfly 替代方案 在实践中涉及的内容。

  1. 1

    创建实例

    在 HotKV Cloud 控制台中选择区域和套餐。该实例是一台独立的机器,由我们为您开通、打补丁和监控。

  2. 2

    将客户端指向它

    继续使用您现有的客户端库。将主机、端口和凭据从 Dragonfly 改为 HotKV 实例。TLS 和密码认证从一开始就启用,并提供 ACL 用户。使用相同协议的 Dragonfly 替代方案,在核心命令上无需改动客户端。

  3. 3

    迁移数据

    使用您已经熟悉的工具。DUMP 和 RESTORE、MIGRATE,或重放您的写入操作都可行,因为 HotKV 实现了这些命令。

  4. 4

    开启此前缺少的功能

    向量搜索和键标签是所有套餐上的核心命令。提示词缓存和语义缓存、智能体记忆以及 LLM 成本跟踪,在 Performance 及以上套餐上是同一服务器的命令。无需模块、边车或第二个服务。这正是 Dragonfly 替代方案应当补上的部分。

常见问题

关于这款 Dragonfly 替代方案 的问题

两者都是多线程的。这款 Dragonfly 替代方案有什么不同?

Dragonfly 为每个线程分配其专属的键空间分片,因此键分布在多个分片中的命令需要跨线程协调。HotKV 让每个线程都在同一个共享存储上工作,因此多键命令和单键命令走同一条路径。

两者在基准测试中相比如何?

在一台 Azure D160alds_v7 上,以单实例运行,在与 Dragonfly 2.0.2 的对比中,HotKV 在 12 个命令中的 11 个上录得最高的中位吞吐量。倍数从 MGET 上的至少 2 倍到 INCR 上的至少 4.4 倍。PING 在负载生成器的限制范围内打平。每一个数字、方法和原始数据均已公开。

HotKV 有 AOF 吗?

有。HotKV 通过快照和仅追加文件持久化。Dragonfly 的文档声明它目前不支持 AOF。

我可以不改代码就从 Dragonfly 迁移吗?

两款服务器都使用 RESP2 和 RESP3,因此同样的客户端库可以连接这个 Dragonfly 替代方案并使用核心命令。使用 DUMP 和 RESTORE、MIGRATE 或重放您的写入操作来迁移数据。核心集之外的任何内容请查阅命令参考。

用您已有的客户端来测试这款 Dragonfly 替代方案

HotKV Cloud 正在分批开放。这个 Dragonfly 替代方案 的每个实例都是一台搭载多线程引擎的专属机器。AI 命令族随 Performance 和 Scale 套餐提供。