Keydb_eng [LATEST]
Developed by EQ Alpha and now maintained by Snap, KeyDB is often deployed as a drop-in replacement for Redis where high throughput and low latency are required under heavy concurrent load. | Feature | Redis | KeyDB | |---------|-------|-------| | Execution model | Single-threaded event loop | Multi-threaded with thread-local data sharding | | Concurrency handling | Shared-nothing + I/O threads (v6+) | Shared everything with fine-grained locking | | Data consistency | Sequential, deterministic | Atomic operations preserved; non-deterministic interleaving possible for unrelated keys | | Blocking commands | Supported (BLPOP, etc.) | Supported, but with cross-thread coordination | | Snapshotting | Fork-based (RDB) | Fork-based or thread-local snapshots |
int setCommand(client *c) unique_lock(server.dict_lock); // exclusive lock setKey(c->db, key, val); unique_unlock(server.dict_lock); keydb_eng
Each worker maintains its own aeEventLoop (async event library), epoll/kqueue fd set, and client list. // db.c excerpt (conceptual) int getGenericCommand(client *c) shared_lock(server.dict_lock); // shared lock robj *o = lookupKey(c->db, c->argv[1]); shared_unlock(server.dict_lock); // ... Developed by EQ Alpha and now maintained by
1. Introduction KeyDB is a fork of Redis (starting from Redis 5.0) that maintains full protocol compatibility while introducing a fundamentally different execution engine. Its primary differentiator is multi-threaded processing of queries, allowing it to scale linearly with CPU cores on modern hardware — something that vanilla Redis, by design, cannot do. As of 2025, KeyDB remains a niche but
As of 2025, KeyDB remains a niche but powerful tool — especially in cloud environments where CPU cores are plentiful and predictable low-latency under concurrency matters more than strict serializability. Would you like a deeper analysis of KeyDB’s active-replica architecture or its memory allocator modifications?