A key-value database
A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.
Go · Rust
Implementa el protocolo RESP, un bucle de eventos y expiración de claves. Un servidor real que habla con redis-cli.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Redis es rápido porque es simple: un proceso, estructuras en memoria y un protocolo tan sencillo que se puede leer a ojo. Es el servidor perfecto para reimplementar.
Vas a hablar RESP, el protocolo de Redis, y a construir un servidor al que el redis-cli oficial se conecta sin notar la diferencia. Empezarás con PING y terminarás con expiración de claves, transacciones y persistencia.
10 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Acepta conexiones, parsea el protocolo y responde a PING y ECHO.
SET, GET, DEL, tipos de datos y errores compatibles.
TTL, expiración perezosa y activa, y comandos sobre listas.
Bucle de eventos con muchos clientes, MULTI/EXEC y volcado a disco.
A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.
Go · Rust
Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.
Go · Python · Java
Build a vector index with exact search, filters, and a simplified HNSW graph.
TypeScript · Python · Go