Saltar al contenido

Lección 3 de 21 · Lectura y práctica

Práctica: Configurar Redis Local y Conectar una Aplicación Backend

Tipo de lección: VideoConcepto claveConfigurar Redis en un entorno local es el primer paso para integrarlo en tu aplicación backend. Piensa en Redis como un almacén de datos en memoria que actúa como una capa intermedia entre tu.

Del concepto a la práctica

Taller de esta lección

Una conexión backend útil tiene tres estados verificables: creada, lista y cerrada. La aplicación no debe asumir que importar el cliente equivale a estar conectada. Conviene centralizar la URL y capturar el evento de error para que una caída no quede oculta.

Ejemplo resuelto

En un laboratorio Node.js con un cliente Redis ya disponible, la secuencia conceptual es:

js
import { createClient } from "redis";
const client = createClient({ url: "redis://localhost:6379" });
client.on("error", err => console.error("redis_connection_error"));
await client.connect();
await client.set("prueba:42", "ok", { EX: 20 });
console.log(await client.get("prueba:42"));
await client.close();

La salida esperada es ok; el cierre libera la conexión del proceso.

Ejemplo para node-redis5 como módulo ESM, con cierre graceful close; quit pertenece a ejemplos anteriores y fue deprecado. El cliente de aplicación se conecta una vez y no se cierra por petición. En un script de prueba coloca cierre en finally, con destroy para desconexión forzada si la versión lo requiere. isOpen indica socket y no equivale a isReady para comandos; configura reconexión/timeout acotados y redacción de errores según el cliente instalado.

Pruébalo

  1. Arranca Redis localmente.

  2. Configura la URL mediante una variable de entorno de prueba.

  3. Conecta y guarda una clave temporal.

  4. Lee la clave y cierra el cliente.

Comprueba tu resultado

Error frecuente: continuar ejecutando consultas después de cerrar el cliente. Corrige separando la fase de trabajo del cierre. Resultado esperado: una lectura ok, ningún secreto impreso y un proceso que termina sin dejar conexiones abiertas.

Diagrama de decisión con ramas Sí y No y un bucle que procesa cada elemento de una lista.
CursaloMapa de práctica
Cómo avanza un programa

Una 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 ↗

Tipo de lección: Video

Concepto clave

Configurar Redis en un entorno local es el primer paso para integrarlo en tu aplicación backend. Piensa en Redis como un almacén de datos en memoria que actúa como una capa intermedia entre tu aplicación y las bases de datos tradicionales. En producción, esta configuración inicial determina la estabilidad y rendimiento de funcionalidades como cache, sesiones y colas.

Una analogía útil es comparar Redis con una memoria de trabajo en tu cerebro: mientras las bases de datos SQL son como tu memoria a largo plazo (lenta pero permanente), Redis es esa memoria inmediata que te permite acceder rápidamente a información frecuente. Configurarlo correctamente significa optimizar cómo tu aplicación "piensa" y responde a las solicitudes.

Cómo funciona en la práctica

Vamos a configurar Redis localmente y conectarlo a una aplicación backend simple. Sigue estos pasos:

  1. Instala Redis usando Docker: docker run --name redis-local -p 6379:6379 -d redis:alpine
  2. Verifica que esté corriendo: docker ps debe mostrar el contenedor activo.
  3. Crea una aplicación Node.js básica e instala el cliente Redis: npm install redis
  4. En tu código, configura la conexión:
    const redis = require('redis');
    const client = redis.createClient({
      host: 'localhost',
      port: 6379
    });
    client.on('connect', () => console.log('Conectado a Redis'));
  5. Prueba la conexión con un comando simple: client.set('test', 'valor', redis.print);

Este flujo te permite simular un entorno de producción donde Redis manejará datos temporales. La clave está en entender que cada configuración (como el puerto o el host) afecta cómo tu backend interactúa con el servicio.

Caso de estudio

Imagina una aplicación de e-commerce que usa Redis para cache de productos. Cada vez que un usuario busca un producto, la aplicación primero consulta Redis. Si el dato no está en cache, lo busca en la base de datos principal y luego lo almacena en Redis para futuras consultas.

EscenarioSin RedisCon Redis
Tiempo de respuesta200ms50ms
Carga en base de datosAlta (1000 consultas/min)Baja (100 consultas/min)
DisponibilidadDepende de la BDMejorada con redundancia
En producción, una configuración adecuada puede reducir la latencia en un 75% y disminuir la carga en tu base de datos principal.

Errores comunes

  • No configurar persistencia: En entornos locales, es fácil olvidar que Redis por defecto no guarda datos en disco. Usa configuraciones como save en redis.conf para evitar pérdidas.
  • Mal manejo de conexiones: Dejar conexiones abiertas puede agotar los recursos. Siempre cierra las conexiones después de usarlas o usa pools de conexiones.
  • Ignorar la seguridad: En local, es común no usar contraseñas, pero en producción esto es crítico. Configura requirepass desde el inicio.
  • Subestimar la memoria: Redis almacena todo en RAM. Si no monitoreas el uso de memoria, puedes saturar el servidor. Usa maxmemory para límites.

Checklist de dominio

  1. Redis instalado y corriendo en local (puerto 6379 accesible).
  2. Conexión establecida desde tu aplicación backend sin errores.
  3. Capacidad de realizar operaciones básicas: SET, GET, DEL.
  4. Configuración de persistencia habilitada para pruebas de recuperación.
  5. Manejo adecuado de errores en la conexión (timeouts, desconexiones).
  6. Uso de un cliente Redis compatible con tu stack tecnológico (Node.js, Python, etc.).
  7. Entendimiento de cómo escalar esta configuración a un entorno de producción.

Configurar Redis Local y Conectar una API REST

Sigue estos pasos para crear una configuración funcional de Redis en tu máquina local y conectarla a una aplicación backend simple.

  1. Instala Redis usando Docker con el comando: docker run --name redis-prod-practice -p 6379:6379 -d redis:alpine redis-server --appendonly yes
  2. Verifica la instalación ejecutando docker exec -it redis-prod-practice redis-cli ping. Debe responder "PONG".
  3. Crea un proyecto Node.js nuevo con npm init -y e instala las dependencias: npm install express redis
  4. Crea un archivo app.js con un endpoint GET /cache que:
    • Conecte a Redis en localhost:6379
    • Al recibir una petición, verifique si existe una clave "ultima_consulta"
    • Si existe, devuelva su valor; si no, guarde la fecha actual y devuélvala
  5. Ejecuta la aplicación con node app.js y prueba el endpoint con curl o Postman.
  6. Reinicia el contenedor de Redis y verifica que los datos persistan (gracias a --appendonly yes).
Pistas
  • Asegúrate de que el puerto 6379 no esté en uso por otra aplicación.
  • Usa client.get() y client.set() en tu código Node.js para interactuar con Redis.
  • Si la conexión falla, revisa los logs de Docker con docker logs redis-prod-practice.

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.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.