Lección 2 de 21 · Lectura y práctica
Comandos Esenciales de Redis para Operaciones Básicas
Concepto claveRedis es un almacén de estructuras de datos en memoria que funciona como base de datos, caché y agente de mensajes. En producción, dominar sus comandos esenciales es como aprender las herramientas básicas de un.
Del concepto a la práctica
Taller de esta lección
Los comandos se entienden mejor observando cómo cambia el estado. En una cola, LPUSH añade al extremo izquierdo y RPOP retira del derecho; en un hash, cada campo puede actualizarse sin reemplazar todo el registro. El TTL no es una propiedad universal: debes definirlo para cada dato temporal.
Ejemplo resuelto
HSET perfil:42 nombre Ana zona norte
HGET perfil:42 nombre
# Ana
LPUSH cola:reportes r-101
LPUSH cola:reportes r-102
LLEN cola:reportes
# 2
RPOP cola:reportes
# r-101El orden muestra que los trabajos salen primero en entrar, primero en salir cuando se combina LPUSH con RPOP.
Completa el hash con HSET perfil:42 idioma es y prueba HGET perfil:42 zona→norte. Limpia únicamente tus claves de este fixture antes de repetir; una lista con datos previos no tendrá longitud2. HSET conserva el TTL existente, mientras SET sin opciones apropiadas puede quitarlo al reemplazar un string. FIFO aquí describe orden de extracción, no finalización si varios workers tardan tiempos distintos.
Pruébalo
Crea un hash con tres campos de un usuario ficticio.
Recupera solo el campo
zona.Añade dos identificadores a una lista.
Retira uno y mide la longitud restante.
Comprueba tu resultado
Error frecuente: usar GET sobre un hash y concluir que faltan datos. Corrige usando HGET o HGETALL. Resultado esperado: el campo solicitado coincide con la entrada, la lista queda con longitud 1 y el identificador retirado ya no aparece en ella.

Mapa de prácticaUna condición decide qué camino ejecuta el programa. Un bucle repite una operación mientras queden elementos, y termina cuando la lista se agota. Separar ambas ideas ayuda a seguir el flujo y comprobar casos límite.
Ver la infografía en tamaño completo ↗Concepto clave
Redis es un almacén de estructuras de datos en memoria que funciona como base de datos, caché y agente de mensajes. En producción, dominar sus comandos esenciales es como aprender las herramientas básicas de un taller: sin ellas, no puedes construir nada sólido. Para un Backend Engineer, estos comandos son el puente entre la teoría y aplicaciones reales como caché, sesiones y colas.
Imagina Redis como una cocina de restaurante: los ingredientes (datos) deben almacenarse, recuperarse y procesarse rápidamente para servir platos (respuestas) a los clientes (usuarios). Los comandos básicos son como las técnicas de corte y cocción: si las dominas, optimizas el flujo de trabajo. En este contexto, nos enfocamos en operaciones para cache (almacenamiento temporal), pub/sub (comunicación en tiempo real) y job queues (procesamiento en cola), que son pilares en backend moderno.
Cómo funciona en la práctica
Vamos a desglosar un ejemplo paso a paso usando comandos para cache. Supón que tienes una aplicación web que necesita cachear resultados de una API costosa. Primero, conecta a Redis desde la terminal o un cliente:
redis-cliLuego, usa estos comandos esenciales:
- SET: Almacena un valor con una clave y tiempo de expiración (TTL). Ejemplo:
SET user:123:profile '{"name":"Ana","role":"admin"}' EX 300guarda datos por 300 segundos. - GET: Recupera el valor. Ejemplo:
GET user:123:profiledevuelve el JSON. - DEL: Elimina una clave. Ejemplo:
DEL user:123:profileborra la entrada del cache. - EXISTS: Verifica si una clave existe. Ejemplo:
EXISTS user:123:profiledevuelve 1 si existe, 0 si no.
Para pub/sub, usa PUBLISH y SUBSCRIBE. Ejemplo: en una terminal, suscríbete a un canal: SUBSCRIBE notificaciones. En otra, publica un mensaje: PUBLISH notificaciones "Nuevo pedido recibido". El suscriptor recibe el mensaje en tiempo real.
Caso de estudio
Considera una plataforma de e-commerce que usa Redis para cache, sesiones y colas. En un escenario de alto tráfico, como el Black Friday, se aplican comandos esenciales así:
| Componente | Comando Redis | Uso en producción |
|---|---|---|
| Cache de productos | SET/GET con TTL | Almacena datos de productos populares por 5 minutos para reducir carga en la BD. |
| Sesión de usuario | SETEX/GET | Guarda la sesión del usuario (ej., carrito) con expiración automática tras inactividad. |
| Cola de pedidos | LPUSH/RPOP | Encola pedidos nuevos con LPUSH y procesa con RPOP en workers. |
En este caso, el uso de TTL en cache evita datos obsoletos, mientras que las colas aseguran procesamiento ordenado bajo carga pico.
Errores comunes
- No usar TTL en cache: Almacenar datos sin expiración puede llenar la memoria y causar fallos. Solución: Siempre define un TTL con SETEX o el parámetro EX en SET.
- Confundir estructuras de datos: Usar Strings para listas o Hashes para simples valores reduce eficiencia. Solución: Aprende cuándo usar cada tipo (ej., Hashes para objetos, Lists para colas).
- Ignorar el manejo de errores en pub/sub: Si un suscriptor se desconecta, puede perder mensajes. Solución: Implementa reconexión automática y logs.
- No monitorear el uso de memoria: Redis en memoria puede agotarse rápido. Solución: Usa comandos como INFO memory y configura límites.
- Usar GET/SET para sesiones sin atomicidad: En entornos concurrentes, esto puede causar race conditions. Solución: Usa comandos atómicos como SETNX o transacciones con MULTI/EXEC.
Checklist de dominio
- Puedo almacenar y recuperar datos en Redis usando SET y GET con TTL para cache.
- Sé implementar una cola simple con LPUSH y RPOP para procesamiento asíncrono.
- Puedo configurar pub/sub con PUBLISH y SUBSCRIBE para notificaciones en tiempo real.
- Entiendo cuándo usar diferentes estructuras de datos (Strings, Hashes, Lists) según el caso.
- Manejo errores comunes como falta de TTL o desbordamiento de memoria.
- Verifico la existencia de claves con EXISTS y las elimino con DEL cuando sea necesario.
- Uso comandos atómicos para operaciones críticas como sesiones de usuario.
Implementa un sistema de cache y cola con Redis
En este ejercicio, simularás un backend que usa Redis para cachear resultados de una API y manejar una cola de tareas. Sigue estos pasos:
- Instala Redis localmente o usa un servicio en la nube. Asegúrate de tener acceso a redis-cli o un cliente similar.
- Crea un script o usa la terminal para ejecutar comandos. Primero, cachea un producto: usa
SET product:1001 '{"name":"Laptop","price":999}' EX 60para almacenar por 60 segundos. - Recupera el producto cacheado con
GET product:1001y verifica que devuelva el JSON. - Implementa una cola de pedidos: usa
LPUSH orders "pedido_123"para agregar un pedido, luego procesa conRPOP orderspara sacarlo. - Configura pub/sub: en una sesión, corre
SUBSCRIBE alerts. En otra, publica un mensaje conPUBLISH alerts "Stock bajo en producto 1001". - Monitorea el uso con
INFO memoryy limpia claves expiradas si es necesario.
Documenta los resultados y reflexiona sobre cómo esto se aplicaría en un entorno de producción real.
Pistas
- Usa el comando TTL para ver cuánto tiempo queda en el cache antes de expirar.
- Si RPOP no devuelve nada, verifica que la cola tenga elementos con LLEN.
- En pub/sub, asegúrate de que ambas terminales estén conectadas al mismo servidor Redis.
Evalua tu comprension
Completa el quiz interactivo de arriba para ganar XP.
Sigue con Redis en Producción: Cache, Sesiones y Colas para Backend Engineers
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.