# DiceDB — Reactive Key-Value Store with Query Subscriptions > DiceDB is an open-source in-memory key-value database built on Valkey that adds real-time query subscriptions, letting clients watch query results and receive push notifications when data changes. ## Install Save as a script file and run: # DiceDB — Reactive Key-Value Store with Query Subscriptions ## Quick Use ```bash # Run with Docker docker run -d -p 7379:7379 dicedb/dicedb:latest # Connect with any Redis-compatible client redis-cli -p 7379 SET user:1 "alice" GET user:1 ``` ## Introduction DiceDB is a fork of Valkey (the Redis successor) that adds reactive query subscriptions to the key-value model. Clients can subscribe to query results and receive automatic push notifications when the underlying data changes, eliminating the need for polling. ## What DiceDB Does - Provides a Redis-compatible in-memory key-value store with sub-millisecond latency - Supports query subscriptions that push updates when watched data changes - Implements multi-threaded I/O for higher throughput than single-threaded Redis - Offers hierarchical storage tiers for managing hot and cold data - Maintains wire-protocol compatibility with Redis and Valkey clients ## Architecture Overview DiceDB is written in C and extends the Valkey codebase with a reactive subscription engine. The query subscription system tracks which keys affect each registered query and triggers re-evaluation when those keys are modified. A multi-threaded I/O layer distributes client connections across CPU cores for improved concurrency compared to the traditional single-threaded Redis event loop. ## Self-Hosting & Configuration - Deploy with Docker using the official DiceDB image on port 7379 - Build from source on Linux or macOS with standard C build tools - Configure memory limits, persistence, and eviction policies via a config file - Connect using any Redis-compatible client library in any language - Monitor performance with built-in INFO and SLOWLOG commands ## Key Features - Reactive subscriptions push real-time updates to clients without polling - Redis wire-protocol compatibility means existing tools and libraries work unchanged - Multi-threaded architecture for better utilization of modern multi-core hardware - Tiered storage moves cold data to disk while keeping hot data in memory - Low operational overhead with a single binary and minimal configuration ## Comparison with Similar Tools - **Redis / Valkey** — The baseline key-value store; DiceDB adds reactive subscriptions and multi-threaded I/O on top - **DragonflyDB** — Multi-threaded Redis alternative focused on raw throughput, but no query subscription feature - **KeyDB** — Multi-threaded Redis fork with active replication, but not actively maintained - **Garnet** — Microsoft Research cache store in C#, optimized for .NET workloads - **Apache Ignite** — Distributed in-memory computing platform, much heavier operational footprint ## FAQ **Q: Is DiceDB compatible with existing Redis clients?** A: Yes. DiceDB uses the Redis wire protocol, so existing client libraries (redis-py, ioredis, Jedis, etc.) work without changes. **Q: What are query subscriptions?** A: Query subscriptions let a client register a query (like GET or filtered key patterns) and receive automatic notifications when the result changes, similar to database triggers but at the client level. **Q: How does DiceDB compare to Redis in performance?** A: DiceDB aims for comparable or better throughput than Redis for standard operations, with the multi-threaded I/O layer providing an advantage on multi-core systems. **Q: What is the license?** A: DiceDB is licensed under BSD 3-Clause, the same as the original Valkey/Redis license. ## Sources - https://github.com/dicedb/dicedb - https://dicedb.io --- Source: https://tokrepo.com/en/workflows/cdbe65fb-3c71-11f1-9bc6-00163e2b0d79 Author: Script Depot