← 全部对比

性能 · 架构 · 成本

Lavik vs Valkey

保留熟悉的协议,改变容量成本。

Lavik 与 Valkey 9.1.0 对比:NVMe SSD 上更高的实测 GET/SET 峰值 QPS、SET 延迟差异,以及 DRAM 与 SSD 的容量成本。

Lavik 项目团队 · 资料核对: 2026-10-13 · Valkey 9.1.0 · DRAM

2026 年 9 月 18 日 · beta.1

让真实测量说明性能

1.05×Lavik / 对照 GET QPS
3.599 msLavik 在该 GET 点的 p99
4.543 ms对照在该 GET 点的 p99

10M 键 × 1 KiB 值;AMD EPYC 9V74,约 126 GiB RAM,六块 NVMe,16 个逻辑 CPU 亲和性,pipeline=1。每点测量一次,窗口 30 秒。对照数据来自相同主机较早的扫描;beta.1 SPDK 点为新测。每种操作分别选择各系统最高 QPS 点,连接数可能不同。 方法与完整报告 ↗

各操作峰值 QPS 及该点的延迟
操作系统QPSp99 (ms)p99.9 (ms)连接数
GETLavik 0.1.0-beta.1 SPDK1,012,1803.5995.631640
GETValkey 9.1.0 · DRAM965,6974.5438.1591280
SETLavik 0.1.0-beta.1 SPDK930,4654.7998.0951280
SETValkey 9.1.0 · DRAM802,5194.3838.8951280

读懂这个结果

本次扫描中 Lavik 的 GET 与 SET 峰值 QPS 更高。但 Valkey 所选 SET 峰值点的 p99 更低:4.383 ms,而 Lavik 为 4.799 ms。报告覆盖 Valkey 的 1/2/4/8/16 个 I/O 线程配置;SET 最佳结果使用 8 个线程。Valkey 持久化被关闭。

这是 Lavik 项目发布的基准,尚非第三方复测。单机短窗口结果不能证明相同崩溃持久性、长期稳定状态、集群容量或应用 SLA。使用下方成本模型前,请对照你的负载、数据分布与延迟预算。

查看完整连接数与线程扫描
成本计算器可选择的全部测量点
系统操作线程*连接QPSp99 (ms)
LavikGET1680390,4940.335
LavikGET16160609,1610.487
LavikGET16320803,0160.959
LavikGET166401,012,1803.599
LavikGET161280940,7139.791
LavikSET1680473,3840.591
LavikSET16160633,8491.071
LavikSET16320759,4881.671
LavikSET16640876,2663.567
LavikSET161280930,4654.799
ValkeyGET180145,6760.895
ValkeyGET1160153,2781.895
ValkeyGET1320155,4083.935
ValkeyGET1640153,6318.095
ValkeyGET11280140,69417.151
ValkeySET180143,5060.871
ValkeySET1160145,8041.967
ValkeySET1320145,6084.159
ValkeySET1640141,9528.767
ValkeySET11280130,76718.303
ValkeyGET280162,0970.663
ValkeyGET2160152,9441.223
ValkeyGET2320157,5622.207
ValkeyGET2640158,2244.607
ValkeyGET21280149,71011.711
ValkeySET280144,6670.743
ValkeySET2160151,5041.247
ValkeySET2320146,8002.351
ValkeySET2640148,3894.927
ValkeySET21280134,25212.415
ValkeyGET480408,3440.327
ValkeyGET4160424,9520.551
ValkeyGET4320440,4090.951
ValkeyGET4640446,1551.823
ValkeyGET41280442,8913.695
ValkeySET480381,3360.359
ValkeySET4160396,4960.575
ValkeySET4320405,7941.031
ValkeySET4640409,7121.871
ValkeySET41280409,8464.447
ValkeyGET880542,9660.287
ValkeyGET8160667,2120.551
ValkeyGET8320789,8311.159
ValkeyGET8640831,0803.503
ValkeyGET81280857,0494.607
ValkeySET880526,5280.287
ValkeySET8160655,2910.519
ValkeySET8320725,4651.199
ValkeySET8640783,7113.519
ValkeySET81280802,5194.383
ValkeyGET1680544,2380.279
ValkeyGET16160692,9050.519
ValkeyGET16320826,6891.463
ValkeyGET16640897,7683.583
ValkeyGET161280965,6974.543
ValkeySET1680510,8930.295
ValkeySET16160607,6200.527
ValkeySET16320686,3031.015
ValkeySET16640703,1163.423
ValkeySET161280741,4694.127

*线程角色不同:Lavik 工作线程、Redis/Valkey I/O 线程、Dragonfly proactor、Garnet 最小线程池线程。 CSV ↗

存储设计如何影响你的应用

测试中的 Valkey 将数据集保留在 DRAM。Lavik 使用内存键索引与 SSD 值存储,通过 RESP 接受 Redis/Valkey 兼容命令。协议一致可复用客户端投入,但不代表所有命令与选项的行为完全相同。

对于长期会话、缓存和机器生成的特征数据,关键在于有效容量是否必须按 DRAM 价格扩展。Lavik 以 NVMe SSD 承载值容量,并通过异步执行追求高吞吐量,无需把全部值常驻内存。

Lavik beta.1 系统架构 ↗ · Lavik beta.1 存储与恢复 ↗

熟悉的协议,面向 NVMe SSD 的执行路径

速度来自架构,而不是要求应用换一种协议。

Lavik 是 Apache 2.0 开源的 Redis 兼容键值存储。内存保存键索引,NVMe SSD 承载值数据。线程本地状态、协程与异步 I/O 让工作线程在等待存储时继续处理其他请求;SPDK 提供直接访问 NVMe 的存储路径。九月的 SPDK 测试仍使用内核 TCP,并未使用 DPDK 网络。

01Redis 客户端 / RESP
02工作线程与内存键索引
03异步 I/O
04NVMe SSD 值存储

存储引擎覆盖字符串、哈希、列表、集合与有序集合载荷;集合可使用分组存储。键索引、路由元数据和缓冲区仍消耗内存。字符串 GET/SET 基准并不证明其他数据结构具有相同 QPS。 beta.1 架构 ↗ · 存储与集合 ↗ · Apache 2.0 ↗

容量增长,不必按 DRAM 单价买单

假设模型 · 可调整输入

20× 更低的值容量成本,从单价算起

默认采用 DRAM 5 美元/GiB、NVMe SSD 0.25 美元/GiB 的假设价格,比例为 20:1。它们不是实时报价,也不是云主机月费。

20.0×

DRAM / SSD 值容量成本比

Valkey DRAM: $5,120 · Lavik NVMe SSD: $256

Value-capacity cost = dataset GiB × media price/GiB

值容量模型不含键与索引内存、缓冲区、CPU、网络、备份、副本或运维。因此 20× 值容量成本差异并不等于整体服务便宜 20 倍。请在完整成本计算器中加入索引内存与共同成本。

加入索引内存与共同成本 →

何时选择 Lavik

当内存成为扩展瓶颈,且应用使用的 Valkey 命令和客户端在 Lavik 版本化兼容范围内时,可评估 Lavik。按实际延迟预算比较吞吐量,再验证过期、重连和故障切换路径,分阶段迁移。

何时保留现有方案

如果现有适合 DRAM 的工作负载成本合理、应用行为已得到验证,可以保留 Valkey。尤其不要只为提高峰值 QPS 而牺牲写入延迟要求。

从测试到迁移

  1. 列出所用命令、数据类型、脚本与客户端选项,对照版本化兼容范围。 命令参考 · 客户端兼容性
  2. 在代表性 NVMe SSD 上回放实际数据分布、过期率和读写比例,比较目标 p99/p99.9,而非只看峰值 QPS。
  3. 验证复制、恢复和故障期间容量余量,再进行可回退的小流量切换。 迁移与集群指南

常见问题

更高 QPS 是否意味着 Lavik 每种操作的延迟都更低?

不是。在 1,000 万键的峰值结果中,Lavik 的 GET/SET 吞吐量与 GET p99 更优,而 Valkey 在其自身 SET 峰值点的 p99 更低。请使用完整连接数扫描,选择满足延迟预算的运行点。

使用 Lavik 需要改用新协议吗?

不需要。Lavik 接受 Redis/Valkey 兼容命令,默认 RESP2,也可协商 RESP3。请根据 beta.1 的命令参考、客户端兼容性和迁移指南验证具体行为;协议兼容不等于所有命令、模块或故障切换行为完全相同。

如何把单机结果用于成本评估?

先选择匹配实际读写比例与延迟预算的实测点,再同时考虑数据容量和 QPS 所需节点数。把索引内存、复制、容量余量与故障场景纳入真实回放。页面成本模型是明确假设下的规划示例,不是多节点集群实测或云服务报价。

来源与版本

基准绑定上游提交;产品文档按标注日期核对。八月历史构建与九月 beta.1 结果保留各自范围,不跨实验拼接。

APACHE 2.0 · REDIS COMPATIBLE · NVMe SSD

用你的工作负载,验证容量与速度。