An in-memory data store that is API-compatible with Redis and Memcached, aiming to be a drop-in replacement for both.
apache/kvrocks
A distributed NoSQL key-value database that uses RocksDB for storage and speaks the Redis protocol, so existing Redis clients can connect.
Open-source alternative to:Redis
- Stars
- 4,492
- Forks
- 689
- Open issues
- 291
- Last commit
- yesterday
What is it?
Apache Kvrocks is a distributed key-value NoSQL database built on RocksDB as its storage engine. It is compatible with the Redis protocol, so applications can use any Redis client to access it. The project aims to reduce memory cost and increase storage capacity compared with keeping data in Redis memory.
Kvrocks provides namespaces, which isolate data between users with a separate token for each namespace instead of a single shared password. Replication is asynchronous and based on binlog, similar to MySQL, and Redis Sentinel can be used for failover when a master or replica fails. Its cluster mode is centralized management that remains accessible through standard Redis cluster clients.
The server builds on Linux and macOS for x86_64, ARM and RISC-V, with optional TLS support through OpenSSL. Companion tools cover cluster management, metrics export and migration from or to Redis.
Key features
- 01Redis protocol compatibility, so standard Redis clients work without changes.
- 02Namespaces with a separate token per namespace for data isolation.
- 03Asynchronous binlog-based replication.
- 04Redis Sentinel support for failover.
- 05Centralized cluster mode accessible through Redis cluster clients.
- 06Optional TLS support via OpenSSL.
Use cases
- Storing large datasets that would be costly to hold entirely in Redis memory.
- Replacing a Redis deployment that needs lower memory cost while keeping existing clients.
- Serving multiple tenants that need token-based data isolation on one server.
Quick start
- 1
Clone the repository
git clone https://github.com/apache/kvrocks.git - 2
Enter the project directory
cd kvrocks - 3
Build Kvrocks
./x.py build - 4
Run Kvrocks with the config file
./build/kvrocks -c kvrocks.conf
Things to know
- Supported only on Linux and macOS.
- Building from source needs several system packages and a C++ toolchain.
In collections
Topics
FAQ
- What is kvrocks?
- A distributed NoSQL key-value database that uses RocksDB for storage and speaks the Redis protocol, so existing Redis clients can connect. Apache Kvrocks is a distributed key-value NoSQL database built on RocksDB as its storage engine. It is compatible with the Redis protocol, so applications can use any Redis client to access it. The project aims to reduce memory cost and increase storage capacity compared with keeping data in Redis memory.
- Is kvrocks free to use? What license does it have?
- kvrocks is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is kvrocks still maintained?
- Actively maintained. The last commit to kvrocks was on Nov 6, 2026.
- What can I use kvrocks for?
- Storing large datasets that would be costly to hold entirely in Redis memory. Replacing a Redis deployment that needs lower memory cost while keeping existing clients. Serving multiple tenants that need token-based data isolation on one server.
- How do I install kvrocks?
- Clone the repository: git clone https://github.com/apache/kvrocks.git Enter the project directory: cd kvrocks Build Kvrocks: ./x.py build Run Kvrocks with the config file: ./build/kvrocks -c kvrocks.conf
- Where can I get kvrocks?
- The source code and installation instructions are on GitHub: https://github.com/apache/kvrocks
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A high-performance, Redis-compatible key-value data structure server forked from Redis, aimed at caching and realtime workloads.
A Redis-protocol-compatible key-value store that uses RocksDB for persistent storage, aimed at datasets larger than memory.
A multithreaded, Redis-compatible in-memory database and drop-in replacement for Redis, with active-active replication and optional FLASH storage.
A leaderless, distributed SQLite replication server that accepts writes on any node and speaks the MySQL wire protocol.
A C# remote cache-store that speaks the Redis RESP protocol, so existing Redis clients can connect to it without changes.