VeltrixDB Docs
v1.1.0 GitHub FAQ Quickstart

VeltrixDB vs. Redis

An honest comparison. Redis is excellent software with a massive ecosystem — VeltrixDB solves a different set of problems. Use this page to decide which one fits your workload.

The fundamental difference

Redis stores everything in RAM. It is fast by default, expensive at scale, and subject to GC pause spikes under write pressure.

VeltrixDB stores values on NVMe SSDs behind a DRAM index and an LIRS cache. It targets predictable P99 latency under sustained load, roughly 25× storage density versus an all-RAM layout, and a garbage collector that cannot be permanently paused.

Latency at a glance

PercentileRedis (cache hit)VeltrixDB (cache hit)VeltrixDB (NVMe miss)
P50 read~100 µs (network)~220 ns~400 µs
P99 read~1–50 ms (GC spikes)~510 µs~1 ms
P50 write~200 µs~17 µs per key
P99 writespikes during compaction~42 µs (stable)
Source of these numbers Redis P99 figures are from production reports under mixed read/write load with AOF enabled. VeltrixDB figures are from a 30-minute sustained 80R/20W benchmark on GKE n2-highmem-64 (8× NVMe). See Benchmarking Methodology for the full harness.

The key difference is the shape of P99 over time. Redis P99 is low until it isn’t. VeltrixDB P99 does not drift — the three-tier GC and RT-priority NVMe queue enforce a ceiling.

Storage cost at scale

KeysValue sizeRedis RAMVeltrixDB NVMe
10M128 B~2.5 GB RAM~1.5 GB NVMe
100M128 B~25 GB RAM~15 GB NVMe
1B128 B~250 GB RAM~160 GB NVMe

RAM costs roughly 15–20× more per GB than NVMe SSD in cloud pricing. At 1 billion keys with 128-byte values:

Write amplification

EngineWrite amplificationWhy
Redis (AOF rewrite)2–5×AOF rewrite rewrites the full dataset
RocksDB / LevelDB10–30×LSM compaction sorts and rewrites
VeltrixDB~1.0×Values append once to the Value Log, never rewritten

Write amplification maps directly to SSD wear and write latency. At 1.0×, every byte lands on NVMe exactly once.

When Redis wins

Use Redis when:

When VeltrixDB wins

Use VeltrixDB when:

Migrating from Redis

VeltrixDB uses a simple text protocol compatible with nc:

# Redis
redis-cli SET mykey myvalue
redis-cli GET mykey

# VeltrixDB (same semantics)
echo -e "PUT mykey myvalue\nGET mykey" | nc localhost 9000

For SDK migration, swap the client:

# Before (redis-py)
import redis
r = redis.Redis(host='localhost', port=6379)
r.set('key', 'value')
val = r.get('key')

# After (veltrixdb-python)
import veltrixdb
r = veltrixdb.Client(host='localhost', port=9000)
r.put('key', 'value')
val = r.get('key')

The API surface is intentionally close. PUT/GET/DEL map directly to SET/GET/DEL. MultiPut/MultiGet map to Redis pipelines. SETNX, INCR, DECR, and CAS are all supported.

Roadmap Redis protocol compatibility (RESP) is on the roadmap. Once available, zero code changes will be required — only a connection-string update. See Limitations & Roadmap.

Feature matrix

FeatureRedisVeltrixDB
In-memory speed (P50)~100 µs~220 ns
Predictable P99 under writesspikesbounded
NVMe storage tiernoyes
Write amplification2–30×~1.0×
Pub/Subyesno
Sorted setsyesno
Lua scriptingyesno
Kubernetes Operatorthird-partyfirst-class
Prometheus metricsyesyes
Encryption at restyesyes (AES-256-GCM)
Multi-node replicationyesyes (async/quorum/strong)
Change data captureno built-inyes
Atomic CAS / INCRyesyes
SDKs (Go/Python/Node/Rust/C++)yesyes
RESP protocolyesroadmap
Managed cloud offeringyesroadmap

Benchmark reference

All VeltrixDB numbers below are from a 3-node GKE cluster (n2-highmem-64, 8×375 GB NVMe per node, raw block device VLog, Linux 6.6, --read-heavy preset).

3-node cluster · 80R/20W · 1 billion keys (internal run — unverified;
see the YCSB numbers for measured, reproducible results)

Reads/s:         7,200,000
Writes/s:        1,800,000
P50 (blended):   ~220 ns
P99 (blended):   ~510 µs
GC emergency:    0 events in 30 min
Errors:          0

Full benchmark methodology: Benchmarking Methodology.

Questions?

Open an issue on GitHub or start a discussion. If you’re evaluating VeltrixDB for a production workload and want to talk through your specific requirements, the team is happy to help you benchmark against your actual data shape. See the FAQ for common questions.