# apache/kvrocks

Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol.

Repository: https://github.com/apache/kvrocks
Canonical: https://ross.abutalabs.com/products/kvrocks
Homepage: https://kvrocks.apache.org/
Language: C++
License: Apache-2.0
License Family: permissive
Topics: redis, kv, namespace, redis-cluster, distributed, database
Last push: 2026-08-26T03:05:08+00:00

## Health v2 (maintenance only)
Score: 87/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 65, longevity 100
- inputs: {"age_days": 2575, "days_push": 7, "days_rel": 73, "gap_med": 91, "n_releases_24m": 10}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4405, forks 653 (observed 2026-08-28T04:08:48.400482+00:00)

## What it is
Apache Kvrocks is a distributed key-value NoSQL database built on RocksDB that is compatible with the Redis protocol, so any Redis client can connect to it. It aims to lower memory cost and increase capacity compared to Redis while offering namespaces, async binlog-based replication, sentinel-based failover, and Redis-cluster-compatible clustering.

## Use cases
- run a redis-compatible database with disk-based storage to cut memory costs
- self-host a persistent key-value store larger than RAM
- migrate redis workloads to a cheaper storage engine without changing clients
- set up a redis cluster alternative with centralized management
- replicate key-value data across nodes with binlog-style async replication
- use redis sentinel failover with a persistent backend

## When to choose
- your redis dataset exceeds available memory or memory costs are too high
- you need redis protocol compatibility with durable on-disk persistence
- you want replication and cluster features without redis licensing concerns

## When to avoid
- you need full redis command coverage or modules like RedisJSON and streams at parity
- you need sub-millisecond in-memory latency for every operation
- you rely on redis-specific features such as lua scripting edge cases or pub/sub semantics

## Facets
- artifact type: service
- maturity: active
- function: database, caching, self-hosted
- domain: databases, backend, microservices, self-hosted
- platform: self-hosted, cpp
- tags: redis-compatible, nosql, key-value-store, rocksdb, persistence, redis-cluster, linux, macos, docker

## Member repositories
- apache/kvrocks (main) score 87

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:48.400482+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:21:05.788586+00:00, confidence not recorded.
  - readme: https://github.com/apache/kvrocks (fetched 2026-08-28T04:08:48.400482+00:00, sha 716cec45e1bc)
  - homepage: https://kvrocks.apache.org/ (fetched 2026-08-29T09:08:56.405997+00:00, sha 7ec4cc3fa4e4)
  - site_page: https://kvrocks.apache.org/docs/getting-started (fetched 2026-08-29T09:08:56.414926+00:00, sha 459367a75b6b)
  - site_page: https://kvrocks.apache.org/docs/supported-commands (fetched 2026-08-29T09:08:56.417081+00:00, sha f0058fe92c2e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
