Why KiviDB is worth a look now
Redis-compatible databases are easy to describe and harder to evaluate. A new server may speak RESP and support familiar commands, yet still differ in scripting, clustering, persistence, modules, or operational behavior. KiviDB combines a Redis-style interface with built-in JSON, full-text search, vector search, time-series commands, and other data structures in a Rust server.
The immediate reason to examine it is release 1.2.2, published on November 12, 2026. It fixes a medium-severity server-availability issue affecting versions 1.2.0 and 1.2.1 when a search index was being changed while a multi-key write encountered an expired key. The server could stop answering, including PING, until restarted. This was not a data-loss issue, but it matters when evaluating a database for real workloads.

Maintainer-published benchmark overview for KiviDB 1.2.0. Read the benchmark methodology before comparing the numbers.
What KiviDB provides
KiviDB is a standalone database server that accepts Redis clients over RESP2 and RESP3. Its compatibility target is Redis 8.10 for commands it implements. That wording matters: it does not mean every Redis feature, module, or operational workflow is supported.
The feature set includes:
- Familiar strings, lists, hashes, sets, sorted sets, streams, transactions, and pub/sub.
- JSON commands and Redis Stack-style full-text search.
- Vector indexing using FLAT or HNSW, with configurable distance metrics.
- Time-series commands, built-in Bloom filters, and vector sets.
- Native snapshots that can preserve keys, index schemas, and populated HNSW graphs.
The workflow is simple: an application uses its existing Redis client, connects to KiviDB's RESP endpoint, and sends supported commands. A service that needs caching, structured documents, and semantic retrieval can evaluate one process instead of immediately adding a separate vector database. The trade-off is that more workloads now depend on the same database process.
Install KiviDB 1.2.2
The official README provides packages for Debian and Ubuntu, Fedora and compatible distributions, Homebrew, Cargo, and Docker. For an isolated test, Docker is the shortest route.
docker run -d \ --name kividb \ -p 6380:6380 \ -v kividb-data:/home/kividb \ kividb/kividb:v1.2.2 The volume is important. KiviDB stores its data under /home/kividb; without a persistent volume, removing or recreating the container can remove the data directory with it.
Check that the server is responding:
redis-cli -p 6380 PING redis-cli -p 6380 SET greeting hello redis-cli -p 6380 GET greeting The expected responses are PONG, OK, and the stored value. Notice the port: KiviDB listens on 6380 by default, not Redis's usual 6379. That allows both servers to run side by side.
The package installation starts a systemd service bound to 127.0.0.1:6380. Protected mode is enabled by default, so do not expose the server to a network until you have configured authentication, binding, and transport security.
A practical vector-search example
KiviDB implements Redis Stack-compatible FT commands. The official quick start creates a hash index with an HNSW vector field:
redis-cli -p 6380 FT.CREATE idx ON HASH PREFIX 1 doc: SCHEMA \ vec VECTOR HNSW 10 TYPE FLOAT32 DIM 128 DISTANCE_METRIC COSINE M 16 EF_CONSTRUCTION 128 Vectors are stored as raw little-endian FLOAT32 bytes in a hash field. A vector with 128 dimensions therefore needs 512 bytes. Use a binary-safe Redis client and generate the vector with your application or a library such as NumPy.
The search documentation shows the K-nearest-neighbor query shape:
FT.SEARCH idx '*=>[KNN 10 @vec $q]' PARAMS 2 q <binary-vector> DIALECT 2 Creating an index is easy; producing consistent embeddings, storing binary vectors correctly, choosing an index configuration, and measuring recall versus latency are the real engineering work.

Vector-search chart from the project's 1.2.0 benchmark assets. It is a maintainer-produced result, not an independent cross-vendor certification.
Compatibility and trade-offs
KiviDB's compatibility document is essential reading. It lists several boundaries:
- Sentinel is not implemented.
- Redis modules cannot be loaded with MODULE LOAD. Some Redis 8 module functionality is built in, but arbitrary module compatibility is not.
- Lua scripting is absent from the default build. Choose the Lua or full binary variant if your workload depends on EVAL or functions.
- Scripts run on Lua 5.4, which can differ from Redis's Lua 5.1 behavior.
- Some cluster operations and hybrid-search cases have specific limitations.
- KiviDB has no REST API; it is a Redis-protocol server.
The project is licensed under AGPL-3.0-only. That is a strong copyleft license, so teams should review the obligations for their deployment and distribution model rather than treating it as interchangeable with BSD or MIT software.
Alternatives depend on the job. Valkey is a natural choice when you want an open Redis-compatible server. Redis remains strong when its ecosystem and operational familiarity matter most. Dragonfly and Garnet are worth benchmarking for high-throughput workloads. Qdrant or Weaviate may be a better fit when vector retrieval is the primary workload rather than one feature in a general-purpose store.
How to read the performance claims
KiviDB publishes a benchmark suite for throughput, latency, memory, snapshots, and vector search. The maintainers document their hardware, workloads, and cases where KiviDB loses. That is useful, but it is still a project-produced benchmark.
Use the same client, payload sizes, pipeline depth, persistence mode, hardware, and network path when comparing systems. Measure p50 and p99 latency under mixed reads and writes, restart behavior, and the cost of rebuilding indexes after a restart.
The 1.2.2 release is a patch, not a reason to assume every earlier release is unsafe in every configuration. The advisory says the lockup affected 1.2.0 and 1.2.1 when a search index was present; 1.1.x and servers without a search index were not affected. If you run 1.2.0 or 1.2.1, upgrade to 1.2.2.
Who should evaluate it?
KiviDB is worth testing if you already use Redis clients and want to experiment with a single server for caching, structured data, full-text search, and vectors. It is not yet a universal replacement for Redis, especially if your deployment relies on Sentinel, arbitrary modules, or exact scripting compatibility.
Start with a disposable dataset, run your application's integration tests, test persistence and restart behavior, and review the license before adopting it for a commercial service.
Would you rather keep vector search beside your cache, or split those responsibilities between a Redis-compatible store and a dedicated vector database?
Sources and further reading
- KiviDB repository
- KiviDB 1.2.2 release notes
- Security advisory GHSA-8rm8-p5c5-g3mr
- Compatibility matrix
- Vector search guide
- Performance methodology
- Earlier project walkthrough
Author links: GitHub · LinkedIn · StackShade on YouTube
AI disclosure: This article was prepared by an autonomous AI editorial agent from public sources. The setup and command syntax were checked against upstream documentation; no benchmark was run for this article.

