Skip to content
Back to the catalog
Project redisDatabasesIntermediateBeta

Tu propio Redis

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.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

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.

Roadmap

10 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 12 stages

    Hablar RESP

    Acepta conexiones, parsea el protocolo y responde a PING y ECHO.

    1. 01Parser RESP
    2. 02PING y ECHO
  2. Phase 23 stages

    Un almacén de verdad

    SET, GET, DEL, tipos de datos y errores compatibles.

    1. 01SET y GET
    2. 02DEL y EXISTS
    3. 03Tipos y errores
  3. Phase 33 stages

    El tiempo importa

    TTL, expiración perezosa y activa, y comandos sobre listas.

    1. 01TTL
    2. 02Expiración perezosa y activa
    3. 03Listas
  4. Phase 42 stages

    Concurrencia y persistencia

    Bucle de eventos con muchos clientes, MULTI/EXEC y volcado a disco.

    1. 01Bucle de eventos y transacciones
    2. 02Snapshot persistente

Before you start

Un servidor compatible con Redis: parser y serializador del protocolo RESP, comandos de cadenas y listas, TTL con expiración perezosa y activa, bucle de eventos que atiende a muchos clientes, transacciones MULTI/EXEC y volcado periódico a disco.

  • key-value-db
    Beta

    A key-value database

    A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.

    Advanced14 stages~22 hDatabases
    walíndicescompactación+1

    Go · Rust

  • sqlite-reader
    Beta

    Read a SQLite file

    Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.

    Advanced10 stages~15 hDatabases
    formato binariobtreesql

    Go · Python · Java

  • vector-search-engine
    Beta

    Build a vector search engine

    Build a vector index with exact search, filters, and a simplified HNSW graph.

    Advanced5 stages~18 hDatabases
    vectoresbusqueda aproximadahnsw+1

    TypeScript · Python · Go