# apache/kvrocks

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apache-kvrocks).**

4,338 stars · 633 forks · C++ · Apache-2.0

## Links

- GitHub: https://github.com/apache/kvrocks
- Homepage: https://kvrocks.apache.org/
- awesome-repositories: https://awesome-repositories.com/repository/apache-kvrocks.md

## Topics

`database` `distributed` `kv` `namespace` `redis` `redis-cluster`

## Description

Kvrocks is a distributed key-value store and Redis-compatible NoSQL database. It utilizes a RocksDB storage engine to provide disk-based persistence, allowing for high-capacity data storage with reduced memory costs compared to in-memory systems.

The system functions as a vector database and full-text search engine, supporting nearest-neighbor searches on vector embeddings and complex document queries via text matching. It employs a proxyless cluster architecture with slot-based routing to distribute data and scale capacity across multiple nodes.

The platform covers a wide range of data management capabilities, including JSON document management, time-series data, and real-time stream processing. It provides advanced search and indexing through geospatial querying, secondary indexing, and query plan analysis, while offering probabilistic data sketching for memory-efficient cardinality and membership estimation.

Additional operational features include atomic transactions, pub/sub messaging, and namespace data isolation for multi-tenant environments.

## Tags

### Data & Databases

- [Unbounded Key-Value Stores](https://awesome-repositories.com/f/data-databases/in-memory-data-stores/disk-backed-stores/bounded-disk-key-value-stores/unbounded-key-value-stores.md) — Provides a disk-based key-value store using RocksDB to handle massive NoSQL datasets exceeding physical memory.
- [Redis Compatible Stores](https://awesome-repositories.com/f/data-databases/redis-compatible-stores.md) — Implements the Redis wire protocol to ensure full compatibility with existing Redis clients and ecosystems.
- [Cluster Request Redirections](https://awesome-repositories.com/f/data-databases/cluster-request-redirections.md) — Redirects client requests to the appropriate node using slot-based routing and redirection responses. ([source](https://kvrocks.apache.org/docs/cluster/))
- [Cluster Request Routing](https://awesome-repositories.com/f/data-databases/connection-managers/cluster-request-routing.md) — Provides topology metadata to compatible SDKs to direct requests to the correct cluster node. ([source](https://kvrocks.apache.org/docs/cluster))
- [Embedded Storage Engines](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/embedded-storage-engines.md) — Implements a RocksDB-based embedded storage engine for high-capacity disk-based persistence.
- [Distributed Key-Value Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/specialized-storage-engines/distributed-key-value-stores.md) — Operates as a distributed key-value store that partitions data across nodes using a proxyless architecture.
- [Full-Text Search Indexes](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/full-text-search-indexes.md) — Provides full-text search indexing for complex document queries using text matching. ([source](https://kvrocks.apache.org/docs/supported-commands/))
- [Disk Persistence](https://awesome-repositories.com/f/data-databases/disk-persistence.md) — Implements disk-based persistence to allow high-capacity data storage beyond the limits of physical memory. ([source](https://kvrocks.apache.org/users/))
- [Full Text Search](https://awesome-repositories.com/f/data-databases/full-text-search.md) — Supports full-text search querying for documents matching complex text patterns. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Full-Text Search Engines](https://awesome-repositories.com/f/data-databases/full-text-search-engines.md) — Functions as a full-text search engine supporting complex document queries and geospatial coordinates.
- [Inter-Node Data Synchronization](https://awesome-repositories.com/f/data-databases/inter-node-data-synchronization.md) — Maintains data consistency across a distributed cluster via primary-replica state synchronization. ([source](https://kvrocks.apache.org/docs/replication))
- [Primary-Replica Replication](https://awesome-repositories.com/f/data-databases/primary-replica-replication.md) — Uses a primary-replica architecture to maintain data consistency by streaming incremental updates across nodes.
- [Cluster Topology Management](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-topology-management.md) — Defines node roles and slot assignments using versioned updates to ensure consistent request routing. ([source](https://kvrocks.apache.org/docs/cluster))
- [LSM-Tree Storage Engines](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/log-structured-merge-trees/lsm-tree-key-value-stores/lsm-tree-storage-engines.md) — Utilizes a RocksDB-based LSM-tree storage engine to persist key-value data efficiently on disk.
- [Vector Search](https://awesome-repositories.com/f/data-databases/vector-search.md) — Provides vector search capabilities using nearest-neighbor searches on float64 embeddings. ([source](https://kvrocks.apache.org/docs/kvrocks-search))
- [Append-Only Message Logs](https://awesome-repositories.com/f/data-databases/append-only-message-logs.md) — Implements append-only message logs with consumer group support for real-time distributed stream processing. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Backup & Recovery](https://awesome-repositories.com/f/data-databases/backup-recovery.md) — Creates full and incremental data copies to prevent loss and enable recovery to remote servers. ([source](https://kvrocks.apache.org/docs/category/operation))
- [Cardinality Estimation](https://awesome-repositories.com/f/data-databases/cardinality-estimation.md) — Employs probabilistic counting algorithms to estimate the number of unique elements in large sets. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Automatic Background Compactions](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/specialized-database-engines/time-series-data-storage/storage-compaction-utilities/automatic-background-compactions.md) — Provides automatic background compaction of LSM-tree sorted runs to reclaim disk space and optimize read performance.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Groups multiple commands into a single uninterruptible block to ensure data consistency. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Quantile Sketches](https://awesome-repositories.com/f/data-databases/distributed-data-processing/distribution-sketching/distributed-percentile-estimation/quantile-sketches.md) — Uses sketch-based algorithms to efficiently estimate ranks and quantiles of observation distributions. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Geospatial Indexes](https://awesome-repositories.com/f/data-databases/geospatial-query-mapping/geospatial-indexes.md) — Implements geospatial indexing for location-based searches and distance calculations. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Hash Field Management](https://awesome-repositories.com/f/data-databases/hash-field-management.md) — Provides hash data structures supporting individual field manipulation and per-field expiration. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Hybrid Vector and Full-Text Search](https://awesome-repositories.com/f/data-databases/hybrid-vector-and-full-text-search.md) — Integrates nearest-neighbor vector similarity searches with lexical full-text indexing for hybrid retrieval.
- [JSON Document Manipulation](https://awesome-repositories.com/f/data-databases/json-document-stores/json-document-manipulation.md) — Enables manipulation of hierarchical JSON documents using path expressions, array operations, and numeric increments. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Key Lifecycle Management](https://awesome-repositories.com/f/data-databases/key-lifecycle-management.md) — Manages data lifecycles through time-to-live settings, expiration timers, and asynchronous deletions. ([source](https://kvrocks.apache.org/docs/supported-commands/))
- [Namespace Isolation](https://awesome-repositories.com/f/data-databases/namespace-isolation.md) — Implements namespace-based data isolation to separate environments for multi-tenant users. ([source](https://cdn.jsdelivr.net/gh/apache/kvrocks@unstable/README.md))
- [Distributed Ordered Lists](https://awesome-repositories.com/f/data-databases/ordered-collection-management/distributed-ordered-lists.md) — Stores sequences of strings supporting index-based access and blocking pops across a distributed cluster. ([source](https://kvrocks.apache.org/docs/supported-commands/))
- [Probabilistic Data Sketches](https://awesome-repositories.com/f/data-databases/probabilistic-data-structures/probabilistic-sketch-aggregators/streaming-data-sketches/probabilistic-data-sketches.md) — Employs Bloom filters and HyperLogLog for memory-efficient cardinality estimation and membership testing.
- [Bloom Filters](https://awesome-repositories.com/f/data-databases/query-filters/bloom-filters.md) — Uses Bloom filters for probabilistic membership testing to minimize memory usage. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Real-Time Data Streaming](https://awesome-repositories.com/f/data-databases/real-time-data-streaming.md) — Implements append-only logs with consumer groups for real-time distributed stream processing.
- [Indexed Document Retrieval](https://awesome-repositories.com/f/data-databases/search-indexing/indexed-document-retrieval.md) — Allows retrieval of documents and records from indexes using sorting and limiting. ([source](https://kvrocks.apache.org/docs/kvrocks-search))
- [Secondary Indexes](https://awesome-repositories.com/f/data-databases/secondary-indexes.md) — Supports secondary indexing on tag, numeric, and vector fields for complex queries. ([source](https://kvrocks.apache.org/docs/kvrocks-search))
- [Server-Side Scripting](https://awesome-repositories.com/f/data-databases/server-side-scripting.md) — Enables the execution of server-side scripts for performing complex atomic operations. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Sorted Sets](https://awesome-repositories.com/f/data-databases/sorted-sets.md) — Stores unique members with numerical scores to enable range queries by index or lexicographical order. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Atomic String Operations](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/string-value-assignments/atomic-string-operations.md) — Provides atomic increments and compare-and-swap operations for string-based key-value storage. ([source](https://kvrocks.apache.org/docs/supported-commands))
- [Time-Series Data Modeling](https://awesome-repositories.com/f/data-databases/time-series-data-modeling.md) — Stores and retrieves timestamped data points for efficient temporal analysis and aggregation. ([source](https://kvrocks.apache.org/community/data-structure-on-rocksdb/))
- [Unordered Unique Collection Management](https://awesome-repositories.com/f/data-databases/unordered-unique-collection-management.md) — Manages collections of unique elements supporting set-theoretic intersection, union, and difference operations. ([source](https://kvrocks.apache.org/community/data-structure-on-rocksdb/))

### Artificial Intelligence & ML

- [Vector Databases](https://awesome-repositories.com/f/artificial-intelligence-ml/vector-databases.md) — Provides a dedicated vector database for storing and querying high-dimensional embeddings.

### Software Engineering & Architecture

- [Slot-Based Cluster Scaling](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems-scaling/slot-based-cluster-scaling.md) — Manages data across multiple nodes using a proxyless cluster architecture with slot-based rebalancing.
- [Hash Slot Sharding](https://awesome-repositories.com/f/software-engineering-architecture/hash-based-data-distribution/hash-slot-sharding.md) — Distributes data across cluster nodes using a fixed number of hash slots for consistent request routing.
- [Proxyless Cluster Architectures](https://awesome-repositories.com/f/software-engineering-architecture/proxyless-cluster-architectures.md) — Implements a proxyless cluster architecture where clients route requests directly to target nodes via topology metadata.

### Development Tools & Productivity

- [Value-Log Reclamation](https://awesome-repositories.com/f/development-tools-productivity/disk-space-management/storage-reclamation-utilities/value-log-reclamation.md) — Triggers background compaction to permanently remove obsolete data and recover physical disk space. ([source](https://kvrocks.apache.org/docs/faq))

### Networking & Communication

- [Pub-Sub Messaging](https://awesome-repositories.com/f/networking-communication/pub-sub-messaging.md) — Implements a publish-subscribe messaging pattern for broadcasting data across named channels. ([source](https://kvrocks.apache.org/docs/supported-commands))

### System Administration & Monitoring

- [Shard Rebalancing](https://awesome-repositories.com/f/system-administration-monitoring/cluster-management/shard-rebalancing.md) — Moves data slots between nodes to optimize storage distribution and scale system capacity. ([source](https://kvrocks.apache.org/docs/cluster/))
