KiviDB is a high-performance, multi-threaded alternative to Redis and Valkey, developed in the Rust programming language. Designed as a drop-in replacement, it supports the Redis protocol (RESP2 and RESP3), allowing it to work seamlessly with existing Redis clients, libraries, and the `redis-cli` tool. Unlike standard Redis, which traditionally operates on a single-threaded command execution loop, KiviDB utilizes a sharded in-memory key-value design where commands run across every core, aiming to maximize hardware utilization.

KiviDB project logo and description on GitHub
KiviDB is a Rust-based, multi-threaded Redis alternative with built-in vector search.github.com

The image serves as a primary visual for the project's identity and core features as a Rust-based Redis alternative.

The database distinguishes itself by integrating advanced search capabilities directly into its core. It supports Redis Stack-style `FT.*` commands for full-text (using BM25), tag, numeric, and vector search (using FLAT or HNSW algorithms). This integration allows users to perform vector approximate nearest neighbor (ANN) searches on hash fields without requiring separate modules or external query engines. For persistence, KiviDB employs native snapshots and an optional append-only file (AOF). A notable feature of its snapshot system is that it preserves the HNSW graph of each vector field, ensuring that search quality remains consistent immediately after a restart without requiring a full index rebuild.

Line graph showing vector search queries per second against recall
Vector search performance metrics showing queries per second relative to recall accuracy.github.com

This graph supports the discussion of KiviDB's integrated vector search capabilities and ANN algorithms.

Performance benchmarks provided by the developers suggest significant throughput advantages over established competitors. In tests conducted on AWS Graviton3 hardware, KiviDB reported serving 21 million pipelined GETs per second on 32 cores, which the developers claim is approximately 9 times faster than Redis 8 and 2.3 times faster than Dragonfly. However, these figures represent a specific controlled environment and may vary based on hardware, workload, and configuration. While KiviDB offers a high-performance alternative with built-in vector capabilities, users should consider the trade-offs of its AGPL-3.0 license and the specific performance characteristics of its sharded architecture compared to the shared-nothing models used by other multi-threaded alternatives like Dragonfly.

Bar chart comparing pipelined throughput of KiviDB, Dragonfly, Redis, and Redis Cluster
Pipelined throughput comparison showing KiviDB's performance relative to other major database systems.github.com

This chart illustrates the specific throughput advantages mentioned in the performance benchmarks section.

KiviDB provides several configuration options, including the ability to toggle Lua scripting and TLS support via Cargo features. It also supports various eviction policies and memory limits. For deployment, it offers Docker images for both `amd64` and `arm64` architectures, and it can run side-by-side with a standard Redis instance by listening on port 6380 by default. The project is open-source under the GNU Affero General Public License v3, and it includes support for both `io_uring` and `Tokio` as I/O models depending on the underlying Linux kernel capabilities.

One technical consideration for users is the behavior of the database during index rebuilds. While the HNSW graph is persisted in snapshots, if a restart occurs from an append-only file (AOF) rather than a snapshot, the system may need to rebuild the search indexes from the raw hashes. During this period, most commands will return a `LOADING` status, though basic commands like `PING` and `INFO` remain functional. This distinction highlights the importance of regular snapshotting to maintain high availability for search-heavy workloads.

Additionally, the project's performance claims have sparked discussion regarding benchmarking methodologies. Some observers note that because Redis uses multi-threading for I/O operations, comparing it against a multi-threaded architecture like KiviDB requires careful consideration of thread pool starvation and core pinning. While KiviDB's architecture is designed to minimize lock contention through fine-grained locking, the practical performance gains in real-world scenarios—where data distribution and access patterns vary—remain a key area for independent verification.