Comandos Esenciales de Redis para Operaciones Básicas

Lectura
20 min~4 min lectura
Objetivo de la lección

Concepto clave Redis es un almacén de estructuras de datos en memoria que funciona como base de datos, caché y agente de mensajes.

Puntos de control
  • Concepto clave
  • Cómo funciona en la práctica
  • Caso de estudio
  • Errores comunes

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-cli

Luego, usa estos comandos esenciales:

  1. SET: Almacena un valor con una clave y tiempo de expiración (TTL). Ejemplo: SET user:123:profile '{"name":"Ana","role":"admin"}' EX 300 guarda datos por 300 segundos.
  2. GET: Recupera el valor. Ejemplo: GET user:123:profile devuelve el JSON.
  3. DEL: Elimina una clave. Ejemplo: DEL user:123:profile borra la entrada del cache.
  4. EXISTS: Verifica si una clave existe. Ejemplo: EXISTS user:123:profile devuelve 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í:

ComponenteComando RedisUso en producción
Cache de productosSET/GET con TTLAlmacena datos de productos populares por 5 minutos para reducir carga en la BD.
Sesión de usuarioSETEX/GETGuarda la sesión del usuario (ej., carrito) con expiración automática tras inactividad.
Cola de pedidosLPUSH/RPOPEncola 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

  1. Puedo almacenar y recuperar datos en Redis usando SET y GET con TTL para cache.
  2. Sé implementar una cola simple con LPUSH y RPOP para procesamiento asíncrono.
  3. Puedo configurar pub/sub con PUBLISH y SUBSCRIBE para notificaciones en tiempo real.
  4. Entiendo cuándo usar diferentes estructuras de datos (Strings, Hashes, Lists) según el caso.
  5. Manejo errores comunes como falta de TTL o desbordamiento de memoria.
  6. Verifico la existencia de claves con EXISTS y las elimino con DEL cuando sea necesario.
  7. 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:

  1. Instala Redis localmente o usa un servicio en la nube. Asegúrate de tener acceso a redis-cli o un cliente similar.
  2. Crea un script o usa la terminal para ejecutar comandos. Primero, cachea un producto: usa SET product:1001 '{"name":"Laptop","price":999}' EX 60 para almacenar por 60 segundos.
  3. Recupera el producto cacheado con GET product:1001 y verifica que devuelva el JSON.
  4. Implementa una cola de pedidos: usa LPUSH orders "pedido_123" para agregar un pedido, luego procesa con RPOP orders para sacarlo.
  5. Configura pub/sub: en una sesión, corre SUBSCRIBE alerts. En otra, publica un mensaje con PUBLISH alerts "Stock bajo en producto 1001".
  6. Monitorea el uso con INFO memory y 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.

Laboratorio de práctica

Antes de marcar esta lección como completa, escribí una evidencia breve para Redis en Producción: Cache, Sesiones y Colas para Backend Engineers: un ejemplo, una decisión, una captura, una mini demo o una nota que puedas reutilizar en portfolio.

Reflexión rápida

¿Qué cambiarías en tu forma de trabajar después de aplicar comandos esenciales de redis para operaciones básicas?

De lección a portfolio

Convertí esta lección en una prueba técnica visible.

Una app pequeña publicada, con README y decisiones explicadas, funciona mejor que una lista de tecnologías sueltas.

Paso 1

Creá una demo mínima que use el concepto de la lección.

Paso 2

Escribí un README corto con objetivo, stack, decisión técnica y mejora futura.

Paso 3

Publicá la demo y enlazala desde tu perfil profesional.

Newsletter Cursalo

Recibí rutas y cursos nuevos

Sumate para recibir recursos orientados a empleo y portfolio.

  • Rutas de empleo
  • Cursos prácticos
  • Portfolio y entrevistas

Sin spam. También podés entrar con tu cuenta para guardar progreso. Iniciá sesión

Comandos Esenciales de Redis para Operaciones B... | CursaloFalar no WhatsApp