← All comparisons

PERFORMANCE · ARCHITECTURE · COST

Lavik vs Redis

Faster measured throughput. Capacity beyond DRAM.

Compare Lavik on NVMe SSD with Redis 8.8.0 in DRAM: peak GET/SET QPS, tail latency, Redis compatibility, and a transparent 20:1 capacity-cost model.

By the Lavik project · Sources checked: 2026-10-13 · Redis 8.8.0 · DRAM

SEPTEMBER 18, 2026 · BETA.1

Performance, with the measurements attached

1.04×Lavik / peer GET QPS
3.599 msLavik p99 at that GET point
4.671 msPeer p99 at that GET point

10M keys × 1 KiB values; AMD EPYC 9V74, approximately 126 GiB RAM, six NVMe devices, 16-logical-CPU affinity, pipeline=1. Each point measured once for 30 seconds. Peer controls come from an earlier sweep on the same hosts; beta.1 SPDK points are newly measured. Each operation selects each system's highest-QPS point; connection counts can differ. Method and full report ↗

Peak QPS per operation and latency at that point
WorkloadSystemQPSp99 (ms)p99.9 (ms)Connections
GETLavik 0.1.0-beta.1 SPDK1,012,1803.5995.631640
GETRedis 8.8.0 · DRAM976,8014.6718.0311280
SETLavik 0.1.0-beta.1 SPDK930,4654.7998.0951280
SETRedis 8.8.0 · DRAM910,4264.8318.1271280

What this result does—and does not—establish

These are open-source Redis server results, not Redis Cloud or Redis Flex. Redis AOF and automatic snapshots were disabled. The 10-million-key dataset fits the server's RAM; it establishes measured throughput, not a terabyte-scale Redis capacity result. Different peak connection counts also matter.

These are Lavik-published benchmarks, not an independent reproduction. Short single-server windows do not establish equal crash durability, long-term steady state, cluster capacity or an application SLA. Match your workload, data distribution and latency budget before using the cost model.

Inspect the full connection and thread sweep
All measured points available to the cost calculator
SystemWorkloadThreads*ConnectionsQPSp99 (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
RedisGET180153,0830.831
RedisGET1160157,9641.839
RedisGET1320157,9263.855
RedisGET1640155,6287.999
RedisGET11280135,52817.535
RedisSET180141,3860.903
RedisSET1160147,8281.943
RedisSET1320148,2804.095
RedisSET1640144,7578.575
RedisSET11280132,31818.047
RedisGET280159,7910.743
RedisGET2160156,2911.855
RedisGET2320159,5793.775
RedisGET2640158,7077.871
RedisGET21280135,88818.175
RedisSET280140,5560.903
RedisSET2160146,8522.063
RedisSET2320148,3844.095
RedisSET2640146,8688.511
RedisSET21280122,61019.711
RedisGET480345,0410.423
RedisGET4160415,2310.607
RedisGET4320418,7731.255
RedisGET4640436,2302.751
RedisGET41280434,7695.951
RedisSET480335,1860.423
RedisSET4160392,2580.631
RedisSET4320392,0541.399
RedisSET4640401,3693.071
RedisSET41280396,3966.751
RedisGET880440,0570.351
RedisGET8160590,5450.543
RedisGET8320702,4420.943
RedisGET8640807,6862.671
RedisGET81280835,7944.415
RedisSET880434,7910.359
RedisSET8160585,7970.543
RedisSET8320692,1070.959
RedisSET8640787,4302.863
RedisSET81280814,4104.671
RedisGET1680424,5820.335
RedisGET16160574,7020.559
RedisGET16320769,1300.975
RedisGET16640919,7993.471
RedisGET161280976,8014.671
RedisSET1680397,6370.359
RedisSET16160570,4740.535
RedisSET16320717,9000.983
RedisSET16640851,4603.071
RedisSET161280910,4264.831

*Thread roles differ: Lavik workers, Redis/Valkey I/O threads, Dragonfly proactors, and Garnet minimum thread-pool threads. CSV ↗

How the storage design affects your application

The Redis control serves its dataset from DRAM. Lavik keeps its key index in memory and stores values on NVMe SSD. Redis clients still speak RESP; the change is in storage and execution, rather than a new application protocol.

A growing cache can require more memory capacity long before it exhausts CPU. Moving value capacity to SSD can reduce that pressure while retaining familiar commands. Lavik's worker-owned state, coroutine runtime and asynchronous storage paths are designed to keep requests progressing while I/O completes.

Lavik beta.1 system architecture ↗ · Lavik beta.1 storage and recovery ↗

FAMILIAR PROTOCOL. NVMe SSD EXECUTION.

The architecture changes. Your application protocol stays familiar.

Lavik is an Apache 2.0 open-source, Redis-compatible key-value store. Memory holds the key index; NVMe SSD holds value data. Worker-local state, coroutines and asynchronous I/O let workers advance other requests while storage completes. SPDK provides a direct NVMe storage path. The September SPDK experiment still uses kernel TCP, not DPDK networking.

01Redis client / RESP
02Worker + DRAM key index
03Asynchronous I/O
04NVMe SSD values

The storage engine covers string, hash, list, set and sorted-set payloads, including grouped collection storage. Key indexes, routing metadata and buffers still consume RAM. String GET/SET benchmarks do not establish the same QPS for other data structures. beta.1 architecture ↗ · Storage and collections ↗ · Apache 2.0 ↗

Growing capacity need not carry a DRAM price tag

ILLUSTRATIVE MODEL · EDIT THE ASSUMPTIONS

20× lower value-capacity cost starts with the unit price

The defaults assume DRAM at $5/GiB and NVMe SSD at $0.25/GiB: a 20:1 ratio. These are illustrative media prices, not live quotes or monthly cloud instance prices.

20.0×

DRAM / SSD value-capacity cost ratio

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

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

This value-capacity model excludes key/index memory, buffers, CPU, network, backups, replicas and operations. A 20× value-capacity difference therefore does not mean a 20× cheaper complete service. Add index memory and shared costs in the full capacity calculator.

Include index memory and shared costs →

When to choose Lavik

Prioritize Lavik when value growth drives your DRAM bill, especially for broad-access caches and feature lookups that cannot rely on a tiny hot set. Validate your exact commands, scripts, expiration behavior and recovery requirements on beta.1.

When keeping your current system makes sense

Keep your existing Redis deployment when its capacity cost is acceptable and it already satisfies your operational needs, or when required command/module behavior has not passed your Lavik compatibility tests. Migration value should exceed the effort of validation and cutover.

From evaluation to migration

  1. Inventory commands, data types, scripts and client options against the versioned compatibility coverage. Command reference · Client compatibility
  2. Replay your data distribution, expiry rate and read/write mix on representative NVMe SSD hardware. Compare target p99/p99.9 rather than only peak QPS.
  3. Validate replication, recovery and capacity headroom during failures, then make a small, reversible traffic cutover. Migration and cluster guides

Frequently asked questions

Is Lavik 20× cheaper than Redis?

For value capacity, a DRAM price per GiB that is 20 times the SSD price gives 20× lower media cost. This is an explicit price assumption, not a measured whole-service bill. Index memory, CPU, replicas, backup and operational costs remain.

Does Lavik require a new application protocol?

No. Lavik accepts Redis/Valkey-compatible commands, with RESP2 by default and negotiable RESP3. Verify exact behavior against the beta.1 command reference, client compatibility and migration guides; protocol compatibility does not mean every command, module or failover behavior is identical.

How should I use a single-server benchmark for cost planning?

Select an observed point matching your read/write mix and latency budget, then account for both capacity-driven and QPS-driven node counts. Include index memory, replication, headroom and failures in your replay. The page's cost model is an explicit planning illustration, not a measured cluster result or cloud quote.

Sources and versions

Benchmarks are pinned to an upstream commit; product documentation was checked on the date shown. Historical August builds and September beta.1 results retain their own scope and are not combined across experiments.

APACHE 2.0 · REDIS COMPATIBLE · NVMe SSD

Put your workload behind the comparison.