Saltar al contenido
Volver al catálogo
Proyecto redisBases de datosIntermedioPróximamente

Construye tu propio Redis

Construye un servidor compatible con Redis desde cero. Implementa RESP, un bucle de eventos y expiración de claves, y conéctate con redis-cli.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

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.

Hoja de ruta

10 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 12 etapas

    Hablar RESP

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

  2. Fase 23 etapas

    Un almacén de verdad

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

  3. Fase 33 etapas

    El tiempo importa

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

  4. Fase 42 etapas

    Concurrencia y persistencia

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

Antes de empezar

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
    Próximamente

    Construye tu propia base de datos clave-valor

    Construye una base de datos clave-valor desde cero. Implementa un motor con WAL, índices y compactación para entender cómo persisten tus datos.

    Avanzado14 etapas~22 hBases de datos
    WALíndicescompactación+1

    Go · Rust

  • sqlite-reader
    Próximamente

    Construye tu propio lector de SQLite

    Construye un lector de SQLite desde cero. Abre un archivo real, recorre sus B-trees y ejecuta consultas SELECT al decodificar el formato binario documentado.

    Avanzado10 etapas~15 hBases de datos
    formato binarioB-treeSQL

    Go · Python · Java

  • vector-search-engine
    Próximamente

    Construye tu propio buscador vectorial

    Construye un buscador vectorial desde cero. Crea un índice con búsqueda exacta, filtros y un grafo HNSW simplificado para búsqueda aproximada.

    Avanzado5 etapas~18 hBases de datos
    vectoresbúsqueda aproximadaHNSW+1

    TypeScript · Python · Go