Apache Kvrocks

active

by Apache Software Foundation · since 2019 · also known as Kvrocks

A Redis-protocol database on RocksDB that trades a little latency for disk-sized capacity.

key-valuedocumentdatabase engineopen source (permissive)growing

Overview

Kvrocks implements the Redis protocol on top of RocksDB, so data lives on SSD with RAM used for caching rather than holding the full dataset. Originally built at Meitu and now an Apache top-level project, it supports most Redis data types, Lua, transactions, namespaces and a cluster mode managed by a controller. Recent versions add a search engine over JSON and hashes. It fits workloads that outgrew Redis's memory budget but still want the Redis API, at the cost of disk-bound latency.

Strengths & trade-offs

Strengths

  • +Stores far more data than RAM by keeping it in RocksDB on SSD
  • +Redis protocol compatibility for most data types and Lua
  • +Apache governance and permissive license
  • +Namespaces give lightweight multi-tenancy

Trade-offs

  • −Higher and less predictable latency than in-memory Redis
  • −RocksDB compaction tuning becomes your problem
  • −Some Redis commands and modules unsupported
  • −No vendor-backed managed service

Great for

  • +Large Redis datasets that are too expensive to keep in RAM
  • +Persistent key-value storage with a Redis API
  • +Feature and profile stores accessed by key

Think twice for

  • −Strict sub-millisecond latency caches
  • −Teams without RocksDB operational experience

Capabilities

Native or official first-party support · 10 of 25 tracked

✓Transactions
✓Secondary indexes
✓Geospatial
✓JSON
✓Stored procedures
✓TTL / expiry
✓Pub/Sub
✓Durable persistence
✓Compression
✓Role-based access
–Joins
–Full-text search
–Vector search
–Change data capture
–Triggers
–Materialized views
–Columnar storage
–In-memory
–Encryption at rest
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
Native
Multi-region
No
Transactions
Limited ACID
Consistency
Eventual
Schema
Schemaless
Architecture
Primary replica, Distributed, Client server
Query languages
Redis commands (RESP), Lua

Datasets sized by disk rather than RAM; cluster mode uses Redis Cluster slots coordinated by kvrocks-controller.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withRedis
apis & protocolsRESP2/RESP3
client languagesPython, Java, JavaScript, Go, C#, Rust, Ruby, PHP, C

Alternatives to Apache Kvrocks

Compare all→
PikaKey-Value5.8

Qihoo 360's Redis-compatible, RocksDB-backed store for datasets too big for memory.

apache-kvrocks vs pika →
RedisKey-Value84.3

The in-memory data structure server that became the default cache, now with search, JSON and vectors built in.

apache-kvrocks vs redis →
ValkeyKey-Value58.0

The Linux Foundation's BSD-licensed fork of Redis, now the default engine on AWS and Google Cloud.

apache-kvrocks vs valkey →
Microsoft GarnetKey-Value7.8

Microsoft Research's .NET cache-store that speaks RESP and scales across cores and storage tiers.

apache-kvrocks vs garnet →
TarantoolKey-Value21.2

In-memory database and Lua application server in one process, with an optional disk engine.

apache-kvrocks vs tarantool →
NCacheKey-Value7.8

A native .NET distributed cache and data grid for Windows and Linux, with an Apache-licensed edition.

apache-kvrocks vs ncache →

Apache Kvrocks FAQ

What is Apache Kvrocks?

Apache Kvrocks is a key-value database by Apache Software Foundation, first released in 2019. Kvrocks implements the Redis protocol on top of RocksDB, so data lives on SSD with RAM used for caching rather than holding the full dataset. Originally built at Meitu and now an Apache top-level project, it supports most Redis data types, Lua, transactions, namespaces and a cluster mode managed by a controller. Recent versions add a search engine over JSON and hashes. It fits workloads that outgrew Redis's memory budget but still want the Redis API, at the cost of disk-bound latency.

Is Apache Kvrocks open source?

Yes. Apache Kvrocks is open source. License: Apache License 2.0.

Does Apache Kvrocks support ACID transactions?

Partly. Apache Kvrocks offers limited ACID guarantees (for example, single-record or single-partition transactions), with eventual consistency.

Does Apache Kvrocks scale horizontally?

Apache Kvrocks scales horizontally out of the box, with built-in sharding or partitioning. It is comfortable at medium scale (≤ 10 TB).

How can I run Apache Kvrocks?

You can self-host it.

What is Apache Kvrocks best for?

Apache Kvrocks is a strong fit for large Redis datasets that are too expensive to keep in RAM; persistent key-value storage with a Redis API; and feature and profile stores accessed by key. Think twice for strict sub-millisecond latency caches.

What are the best alternatives to Apache Kvrocks?

Common alternatives to Apache Kvrocks include Pika, Redis, Valkey, Microsoft Garnet and Tarantool. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Apache Kvrocks?

Apache Kvrocks ranks #299 of 844 databases on the WhichDB Score (10.3/100), and #40 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.