Try Tools · Dev
KiviDB: what happened when we tested it
Redis-compatible database with built-in full-text and vector search.
Score
8.3/10
claims that held up
Verdict
V1 · Partly works211
Access needed
L0 Public web onlyTested 2026-10-20
Rule set before testing: the worst of Redis protocol, search and snapshots; the speed claim is reported but is not a core claim, so its V0 does not cap the verdict. Search was only partly met (default HNSW recall 0.85).
Redis clients worked unchanged (80 of 80 commands gave the same replies as Redis 8 over both RESP2 and RESP3) and a snapshot restored keys, indexes and the vector graph. But default HNSW vector search reached only 0.85 recall@10, and we could not check the 9x-Redis speed claim on our 8-core machine (2.2x with pipelining, about equal without).
80/80
commands gave the same replies as Redis 8
over RESP2 and RESP3, unmodified redis-py
0.85
HNSW recall@10 with default settings
our pass mark 0.90; 0.995 with EF_RUNTIME 200
21,201
keys restored after SAVE and restart
plus 3 indexes and identical search results
2.2×
Redis speed on pipelined GETs (our 8 cores)
claimed ~9× on 32 cores: not testable here
Claim by claim
Redis protocol (RESP2 and RESP3): existing clients, redis-cli and libraries work unchangedWorks
80 of 80 commands returned the same replies as Redis 8.0.2 with unmodified redis-py 8.1.0, over RESP2 and over RESP3, including transactions, WATCH, pipelines and pub/sub. We tested one client library; COMMANDS.md lists what is supported.
Full-text and vector search built in (FT.*, FLAT/HNSW, BM25, tags, numerics)Partly
Full-text, tag and numeric: 7 of 7 exact. FLAT vectors: recall@10 1.00. HNSW with default query settings: recall@10 0.85, below our 0.90 mark; 0.959 with EF_RUNTIME 100 and 0.995 with 200. Works, but tune EF_RUNTIME.
21 million pipelined GETs per second, about 9x Redis 8, on 32 Graviton3 coresNot testable
Not testable here (we have 8 Intel cores, one machine). Context only: 2.2x Redis on pipelined GETs, the same speed without pipelining.
Snapshots (dump.kdb) keep keys, index schemas and the HNSW graph across restartsWorks
After SAVE and restart, all 21,201 keys, 3 indexes and identical FLAT/HNSW/text results came back.
Open a claim to see what we measured.
The full report
Full result
Partly works. As a drop-in for Redis clients it did what it says: 80 of 80 commands matched Redis 8 exactly over both protocol versions, and snapshots restored everything including the vector index. Full-text search was exact. The weak spot is HNSW vector search with default settings (recall@10 0.85 on our data); setting EF_RUNTIME to 100-200 brought it to 0.96-0.995. The headline speed claim needs 32-core hardware we do not have; on 8 cores it was 2.2x faster than Redis with pipelining and the same without.
The test task and exact input
Fixed before installing (plan saved 11:18 UTC+8): run real Redis 8.0.2 next to KiviDB 1.1.0 as ground truth. C1: one script of 80 commands (strings, TTLs, hashes, lists, sets, sorted sets, error replies, binary values, SCAN, MULTI/EXEC, WATCH, pipelines, pub/sub, SELECT) sent with unmodified redis-py to both servers over RESP2 and RESP3; pass if 95%+ of replies match. C2: 10,000 random 64-dimension vectors (seed 42), 100 queries, exact nearest neighbours computed by us; pass if FLAT recall@10 is 0.99+ and HNSW (M 16, EF_CONSTRUCTION 200, default query settings) 0.90+; plus 7 full-text, tag and numeric queries with counts we computed. C4: SAVE, restart, compare keys and search results. C3 (speed) cannot be reproduced on our machine and is reported as context only.
./kividb --bind 127.0.0.1 (prebuilt v1.1.0 Linux x86_64 release; port 6380) redis-py 8.1.0, redis-cli and redis-benchmark from Redis 8.0.2
What happened, step by step7 steps
- Captured the README claims and licence, wrote the plan and pass marks (11:17-11:18)
Observed: Repo created 2026-10-16. Free, AGPL-3.0-only; a commercial licence is also offered. - Downloaded the v1.1.0 release tarball, checked its sha256, started it bound to 127.0.0.1 (11:19)
Observed: Started in under a second: 6 worker threads, io_uring, protected mode on. By default it makes one HTTPS request to GitHub at startup to check for updates (documented; turn off with --update-check no). INFO reports redis_version:8.10.0 next to kividb_version:1.1.0. - C1: ran the 80-command script against Redis and KiviDB, RESP2 and RESP3, and compared every reply (11:20)
Observed: RESP2 80/80 identical, RESP3 80/80 identical (error replies compared by their first word, e.g. WRONGTYPE). redis-cli SET/GET also worked. - C2: loaded 10,000 vectors into a FLAT and an HNSW index, ran 100 queries, then 7 text/tag/numeric queries and a BM25 ranking check (11:21)
Observed: FLAT recall@10 1.00 (scores matched our own cosine distances to 6 decimals), p50 1.54 ms. HNSW recall@10 0.85, below our 0.90 mark, p50 0.42 ms, 5.6 s to ingest. Text/tag/numeric: 7 of 7 counts exact. BM25 ranked the document with the repeated term first. - Extra (not in the plan): repeated the HNSW queries with EF_RUNTIME 10/50/100/200/500
Observed: Recall 0.85 / 0.85 / 0.959 / 0.995 / 1.00. Raising one query parameter fixes it, in line with the vendor's own table (0.943 at ef 64). - C4: SAVE, shut down, restarted from dump.kdb and re-ran the checks (11:22)
Observed: dump.kdb 9.9 MB. After restart: same 21,201 keys, same hash contents, 3 of 3 indexes, identical FLAT and HNSW results for 20 queries, same text count. Log: 'HNSW graph(s) loaded from snapshot'. - C3 context: redis-benchmark, 50 clients, 1,000,000 requests, 100-byte values, with and without pipelining, against both servers on this box (11:22-11:23)
Observed: Pipeline 16: GET 1.53M/s vs Redis 0.70M/s (2.2x), SET 1.19M/s vs 0.77M/s. No pipelining: GET 143k/s vs 142k/s, SET 134k/s vs 140k/s. Client and server shared 8 cores, so this says nothing about 32-core numbers.
Failure modes seen4 items
- HNSW recall@10 was 0.85 with default query settings (M 16, EF_CONSTRUCTION 200, 10,000 x 64-dim vectors); EF_RUNTIME 50 gave the same 0.85, 100 gave 0.959.
- INFO reports redis_version:8.10.0, which can mislead tools that check the Redis version.
- Makes one HTTPS request to GitHub at every startup unless you pass --update-check no (documented in the README).
- The README's quick start uses Docker; on a machine without Docker you need the release binary (it worked).
Evidence files13 files
- File: Test plan and pass marks, written before installing
- File: Vendor claims and licence as captured (README excerpts)
- File: C1 compatibility script (80 commands, RESP2 and RESP3)
- File: C1 results: every reply from Redis and KiviDB
- File: C2 search script (vectors, full-text, tags, numerics)
- File: C2 results: recall, latency, exact counts
- File: Extra: HNSW recall by EF_RUNTIME (script)
- File: Extra: HNSW recall by EF_RUNTIME (results)
- Log: C3 context: redis-benchmark output for Redis and KiviDB
- File: C4 snapshot/restart script
- File: C4 state before restart
- File: C4 state after restart
- Log: Server INFO, config and startup log lines
Vendor claims, as quoted
- "It speaks the Redis protocol (RESP2 and RESP3), so existing Redis clients, redis-cli and libraries work unchanged" (source)
- "it has full-text and vector search built in": Redis Stack-style FT.* commands for full-text (BM25), tag, numeric and vector (FLAT / HNSW) search (source)
- "On the same 32 cores, KiviDB serves 21 million pipelined GETs per second: about 9× Redis 8" (AWS Graviton3 bare metal, separate load-generator machine) (source)
- "Native snapshots (dump.kdb) store the keys, the index schemas, and ... the HNSW graph of each vector field, so search quality after a restart matches the graph you had before shutdown." (source)
Lowest-access way to try it
L0. Download the release for your platform from github.com/kividbio/kividb/releases (or docker run -p 6380:6380 kividb/kividb), start it with --update-check no if you do not want the startup request, then point redis-cli or your Redis client at port 6380. For HNSW indexes, add EF_RUNTIME 100 or more to your KNN queries.
Details: vendor, pricing, environment, time, cost
Not sponsored. No affiliate links. Vendors do not see results before they are published.
How to cite
TriedAgents, "KiviDB: tool test", partly works, tested 2026-10-20, https://triedagents.com/tools/kividb/
Get one re-run case every weekday
One agent use case we actually re-ran, every weekday. Free.
We only store your email address. Every issue has a one-click unsubscribe link. Privacy