- 首页
- HotKV 对比 Dragonfly
HotKV 对比 Dragonfly
一款正面对比测量的 Dragonfly 替代方案
HotKV 和 Dragonfly™ 两款服务器都是多线程的,并且都使用 Redis 协议,因此一款 Dragonfly 替代方案必须在细节上赢得切换。线程如何共享数据,数据如何持久化,以及哪些功能内置于服务器。HotKV Ltd 在一台 160 vCPU 的机器上以相同负载测量了两者,并公开了每一个数字,包括那个打平的数字。
Dragonfly
每个线程一个分片
MGET a b cHotKV
一个共享存储
MGET a b c这款 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日。
无共享分片
Dragonfly 将键空间拆分为每个线程一个分片。触及多个分片中键的命令,例如 MSET 或 MGET,需要跨线程协调。HotKV 让每个线程都运行在同一个共享存储上。这一差异正是这个 Dragonfly 替代方案的核心所在。
没有仅追加文件
Dragonfly 通过时间点快照持久化。其文档声明它目前不支持 AOF。具备仅追加文件的 Dragonfly 替代方案弥补了这一空白。HotKV 提供快照和 AOF。
以 BSL 1.1 源码可用
Dragonfly 以 Business Source License 1.1 授权。其授权允许在您自己的产品或服务内部使用。它不允许作为内存数据存储产品或服务使用,也不允许将 Dragonfly 作为与 DragonflyDB 竞争的托管服务提供。代码在其变更日期转换为 Apache 2.0,按当前许可证文本为 2030 年 11 月 1 日。HotKV 是按其自身许可条款提供的商业软件。
向量搜索内置,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 以其原版发布构建运行。两者均以单实例运行。线程数遵循各产品记录的全核心设置,未针对单个产品调优。在核心较少的机器上差距较小。
每秒操作数,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 的逐项功能对比
公平起见
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
创建实例
在 HotKV Cloud 控制台中选择区域和套餐。该实例是一台独立的机器,由我们为您开通、打补丁和监控。
- 2
将客户端指向它
继续使用您现有的客户端库。将主机、端口和凭据从 Dragonfly 改为 HotKV 实例。TLS 和密码认证从一开始就启用,并提供 ACL 用户。使用相同协议的 Dragonfly 替代方案,在核心命令上无需改动客户端。
- 3
迁移数据
使用您已经熟悉的工具。DUMP 和 RESTORE、MIGRATE,或重放您的写入操作都可行,因为 HotKV 实现了这些命令。
- 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 或重放您的写入操作来迁移数据。核心集之外的任何内容请查阅命令参考。
其他对比