Redis es un almacén de estructuras de datos en memoria de código abierto que funciona como base de datos, caché, broker de mensajes y motor de streaming. Creado por Salvatore Sanfilippo, Redis destaca por su rendimiento excepcional (capaz de gestionar millones de operaciones por segundo con latencias inferiores al milisegundo) gracias a su arquitectura in-memory y su modelo de ejecución single-threaded que elimina la complejidad de la concurrencia. Es utilizado por empresas como Twitter, GitHub, Snapchat y Stack Overflow para resolver problemas que requieren velocidad y eficiencia en el acceso a datos.
El ecosistema actual convive en dos proyectos complementarios: Redis 8, mantenido por Redis Ltd. bajo licencia dual AGPL y RSAL, que incorpora de serie los módulos Redis Stack (RedisJSON, RediSearch con Vector Search, RedisTimeSeries, RedisGraph y RedisBloom); y Valkey 8, el fork respaldado por la Linux Foundation bajo licencia BSD, compatible binariamente con Redis 7 y adoptado por proveedores como AWS ElastiCache, Google Memorystore y Oracle Cloud. Ambos comparten protocolo RESP, ecosistema de clientes y estructuras de datos, y se usan indistintamente en la mayoría de escenarios.
A diferencia de un simple almacén clave-valor, Redis y Valkey ofrecen un conjunto rico de estructuras de datos nativas: strings, listas, conjuntos, conjuntos ordenados, hashes, bitmaps, HyperLogLog y streams. Esta variedad permite implementar patrones complejos como colas de mensajes, leaderboards, contadores atómicos, sesiones de usuario y sistemas de notificaciones en tiempo real de forma directa. Con los módulos de Redis Stack, el mismo motor gestiona además documentos JSON consultables, búsqueda de texto completo, índices vectoriales para RAG (HNSW y FLAT con métricas COSINE, L2 e IP), series temporales y filtros probabilísticos tipo Bloom y Cuckoo. Para durabilidad y escalado se apoyan en persistencia híbrida RDB más AOF, replicación con Redis Sentinel para alta disponibilidad en topologías primario-réplica y Redis Cluster para particionamiento automático mediante 16 384 hash slots. En entornos gestionados, Redis Cloud y Valkey en AWS/GCP ofrecen escalado elástico, autofailover y copias cifradas sin gestionar nodos.
Este itinerario recorre Redis y Valkey de principio a fin: desde los fundamentos y la instalación del entorno hasta la operación en producción, pasando por las estructuras de datos, los patrones de caché, la mensajería con Pub/Sub y Streams, la integración con Node.js, Python y Java Spring, Vector Search para RAG con RediSearch y la configuración de alta disponibilidad.
Qué incluye este itinerario
- Fundamentos: qué es Redis, relación con Valkey, arquitectura in-memory, modelo de datos clave-valor, casos de uso y comparativa con otras soluciones.
- Instalación y entorno: setup local de Redis 8 y Valkey 8, Docker con Redis Stack, Redis Cloud, redis-cli y RedisInsight.
- Estructuras de datos: strings, lists, sets, sorted sets, hashes, bitmaps, HyperLogLog y streams con operaciones detalladas.
- Comandos y operaciones: expiración (TTL con SETEX y GETEX), gestión de claves, transacciones (MULTI/EXEC), pipelining, scripting Lua y rate limiting con ZSET.
- Patrones de caché: cache-aside, write-through, write-behind, políticas de desalojo (LRU, LFU), invalidación y casos prácticos con TTL.
- Pub/Sub y Streams: mensajería con Pub/Sub, Redis Streams con consumer groups (XACK, XPENDING, XCLAIM) y arquitectura event-driven.
- Integración: clientes para Node.js (ioredis), Python (redis-py) y Java (Lettuce, Spring Data Redis con RedisTemplate).
- Módulos Redis Stack: RediSearch con Vector Search para RAG, RedisJSON, RedisTimeSeries, RedisBloom y RedisGraph.
- Persistencia y alta disponibilidad: RDB, AOF, persistencia híbrida, Redis Sentinel y Redis Cluster con 16 384 hash slots.
- Producción: ACL, TLS, monitorización con SLOWLOG e INFO, gestión de memoria y tuning de rendimiento.
Público objetivo
- Desarrolladores backend que necesitan implementar caché, sesiones y colas de mensajes en sus aplicaciones.
- Ingenieros de software que buscan reducir la latencia de acceso a datos en sistemas de alto tráfico.
- Arquitectos de sistemas que diseñan soluciones distribuidas con requisitos de rendimiento exigentes.
- DevOps Engineers que operan instancias de Redis en producción y necesitan dominar la alta disponibilidad.
- Desarrolladores full-stack que quieren integrar Redis con Node.js, Python o Java en sus proyectos.
- Profesionales de datos que necesitan procesamiento de eventos en tiempo real con Redis Streams.
Prerrequisitos
No se requieren conocimientos previos de Redis. Es recomendable tener familiaridad básica con la terminal o línea de comandos, conceptos generales de bases de datos y comprensión del modelo cliente-servidor. Para el módulo de integración, se valorarán conocimientos básicos de al menos uno de los lenguajes cubiertos (JavaScript, Python o Java).