ScriptsApr 20, 2026·3 min read

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.

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

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets