For a project for learning in-memory stores by building one, the first results are redis-windows/redis-windows, redis/redis and dragonflydb/dragonfly. valkey-io/valkey and tporadowski/redis round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore open-source projects that implement custom key-value storage engines inspired by the Redis data structure architecture.
This project is a native Windows port of the Redis in-memory key-value store. It provides a high-speed database that maintains datasets in RAM while using periodic snapshots to disk for data persistence. The implementation includes a background system service wrapper, allowing the data store to be installed as a Windows service that starts automatically upon computer boot. It utilizes native Windows compilation to enable execution directly on the host operating system. The system covers in-memory data caching and local data persistence, ensuring that information is recovered after a process
This repository IS the official Redis ported to run natively on Windows, so it provides the full Redis feature set (in-memory storage, TCP protocol, strings and lists, snapshot persistence, key expiration, and a command-line client) — exactly what you need to learn or deploy a self-contained Redis‑like store.
Redis is an in-memory, key-value database designed to provide sub-millisecond latency for read and write operations. It functions as a versatile data platform, serving as a distributed cache, a message broker, a NoSQL document store, and a vector database. The system utilizes an event-driven, single-threaded loop to process requests efficiently, while maintaining data durability through append-only persistence logs and asynchronous snapshotting mechanisms. What distinguishes Redis is its ability to handle complex data structures—including strings, hashes, lists, sets, and sorted sets—alongsid
Redis is the canonical open-source in-memory key-value store, implementing every feature listed — in-memory storage, TCP protocol, strings and lists, persistence (AOF/snapshots), key expiration, and its own command-line client — so it is the definitive reference for learning or building a Redis-like system.
Dragonfly is a high-performance, multi-model in-memory data store designed to serve as a drop-in replacement for existing database infrastructures. By utilizing a multi-threaded, shared-nothing architecture and a fiber-based concurrency model, it maximizes CPU utilization and minimizes latency for read and write operations. The system supports a wide range of data structures, including strings, hashes, lists, sets, sorted sets, and JSON documents, while maintaining full compatibility with standard industry wire protocols and client libraries. What distinguishes Dragonfly is its focus on effic
Dragonfly is a fully compatible, high-performance Redis alternative with all the features you asked for (in-memory, TCP, strings/lists, persistence, TTL, ready client), making it a comprehensive flagship in the category—though if you specifically want a minimal educational implementation, a simpler dedicated project might be easier to study.
Valkey is an in-memory, NoSQL database server designed for high-performance data storage and real-time state management. It operates as a distributed key-value store, maintaining datasets entirely within system memory to facilitate sub-millisecond response times for read and write operations. The system distinguishes itself through a single-threaded event loop that utilizes asynchronous I/O multiplexing to ensure high throughput. It supports high availability via master-replica replication and provides a decoupled communication model through a built-in publish-subscribe messaging pattern. To
Valkey is a Redis-compatible in-memory key-value store that supports in-memory storage, TCP networking, strings/lists, persistence (RDB/AOF), key expiration, and a command-line client, making it a direct fit for learning or implementing a Redis-like data store.
Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations
This is a native Windows port of Redis, the definitive in-memory key-value store, directly matching your intent to learn or implement a Redis-like system with TCP networking, string/list support, persistence (snapshot/AOF), key expiration, and a command-line client.
KeyDB is a multithreaded in-memory key-value store and distributed cache. It functions as a NoSQL database utilizing multi-version concurrency control to execute non-blocking queries and scans. The project is a multithreaded fork of Redis that maintains protocol compatibility while utilizing a multithreaded architecture to scale across multi-core hardware. It distinguishes itself with flash-tiered storage, allowing the system to offload data from primary RAM to SSD or flash storage to increase total capacity. The system supports high availability through active-active mesh replication and mu
KeyDB is a multithreaded, Redis-compatible in-memory key-value store that covers all the requested features—in-memory storage, TCP protocol, strings/lists, persistence, TTL, and a CLI—making it squarely the kind of tool the visitor is looking for, though its production-grade complexity may exceed what a purely educational project needs.
Garnet is a multi-threaded in-memory database and distributed key-value store. It functions as a high-performance remote cache store that implements the RESP wire protocol to maintain compatibility with existing Redis clients and libraries. The project is distinguished by a shared-memory architecture that enables parallel request processing across multiple cores for sub-millisecond latency. It features a tiered storage system that automatically offloads colder data from system memory to SSD or cloud storage layers, and includes a specialized vector search database for high-dimensional similar
Garnet is a production-grade, multi-threaded in-memory key-value store that implements the RESP protocol for full Redis-client compatibility, making it a real-world example of exactly the kind of system described; it covers in-memory storage, TCP networking, support for strings and lists, persistence, and key expiration, though its complexity may be more than a minimal educational implementation.
This document serves as both a quick start guide to Redis and a detailed resource for building it from source.
This is the original Redis source code, the flagship in-memory key-value store that implements all the features you asked about—in-memory storage, TCP protocol, string/list types, persistence, TTL, and a built-in command-line client—making it the perfect reference for learning or building a Redis-like system.
Dice is a low-latency key-value store based on Valkey that functions as a hierarchical storage engine. It combines a high-speed memory store with a tiered cache system to manage data across multiple storage levels. The system extends memory capacity by implementing a disk-backed cache that automatically persists evicted items to disk and restores them during cache misses. This storage tiering balances retrieval speed and operational cost by distributing data between fast memory and slower disk storage. The engine includes a query subscription service that monitors specific data patterns and
Dice is a Redis-compatible key-value store with in-memory storage, disk persistence, and hierarchical caching, which squarely fits the category of an in‑memory key‑value store like Redis—though its tiered storage design makes it a more advanced implementation than a minimal educational clone.
Olric is a distributed data grid and in-memory key-value store that partitions and replicates data across a cluster of servers. It serves as a shared memory system for managing distributed maps, performing atomic operations, and acting as an in-memory data cache. The system provides a distributed locking mechanism for concurrency control and a pub-sub messaging system that broadcasts and routes messages over named channels across the cluster. The platform covers wide-ranging capabilities including cluster management and orchestration, data replication with configurable quorums, and automated
Olric is a distributed in-memory key-value store that supports many Redis-like features (TCP, persistence, TTL, a command interface), but its focus on clustering and replication makes it more complex than the self-contained, single-node implementation you'd likely use for learning.
NeDB is a JavaScript embedded NoSQL document store designed for Node.js and the browser. It functions as an in-memory data store with the option to persist documents to a local file system, ensuring data survives application restarts. The project utilizes a MongoDB-compatible API to perform data operations, allowing it to serve as a lightweight document indexing system and a persistent file database without requiring a separate database server. Capabilities include querying, inserting, updating, and deleting documents, as well as the ability to create indexes on specific fields to accelerate
NeDB is an embedded document store with a MongoDB-like API, not a Redis-style in-memory key-value store; it lacks TCP networking, key-value operations on strings/lists, and a command-line client.
This project is a C++ TCP server framework and educational socket programming guide. It provides a high-performance network library focused on event-driven architecture, implementing a reactor pattern to handle thousands of simultaneous client connections. The framework is distinguished by its multi-threaded event loop, which utilizes a main-sub reactor coordination model to distribute network events across a worker thread pool. It includes an abstraction layer for non-blocking socket I/O and event multiplexing via the epoll system call, decoupling network transport from application business
This repo is a C++ TCP server framework and educational socket programming guide with a reactor pattern, not an in-memory key-value store like Redis; it provides a building block for writing servers rather than implementing key-value storage, persistence, or the Redis protocol itself.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| redis-windows/redis-windows | 3.5K | Batchfile | apache-2.0 | |
| redis/redis | 74.9K | C | NOASSERTION | |
| 30.7K |
| C++ |
| NOASSERTION |
| valkey-io/valkey | 24.9K | C | other |
| tporadowski/redis | 10K | C | other |
| snapchat/keydb | 12.5K | C++ | BSD-3-Clause |
| microsoft/garnet | 11.9K | C# | MIT |
| antirez/redis | 109 | C | NOASSERTION |
| dicedb/dice | 10.8K | C | NOASSERTION |
| olric-data/olric | 3.5K | Go | Apache-2.0 |