🐳 docker-labs GitHub ↗

Redis Cache API Infraestructura

API con Redis para demostrar cache, tiempo de respuesta y capas de performance.

Objetivo: Demostrar como una capa de cache con Redis reduce latencia en una API Node.js.

Rol en la plataforma
Capa de cache
Stack
Node.js 18 + Redis
Puertos del host
3001 6379
Memoria recomendada
2 GB
Categoría
Infraestructura
Entradas
API: http://localhost:3001
Health check
http://localhost:3001/health
Labs relacionados
Node.js API · RabbitMQ Messaging

Qué hacer una vez levantado

docker compose -f 04-redis-cache/docker-compose.yml up -d --build

04-redis-cache#

API REST con caching en Redis para demostrar patrones de performance con Node.js 20 y Redis 7.

Servicios y puertos#

ServicioPuerto hostDescripcion
API Node.js3001API REST con cache
Redis6379Almacen de cache en memoria

Inicio rapido#

docker compose up -d --build

URL: http://localhost:3001


Endpoints#

MetodoRutaDescripcion
GET/Mensaje de bienvenida
GET/healthHealth check — devuelve { ok: true, ts: "..." }
GET/data/:keyObtiene datos con cache (TTL 5 min)

Ejemplo de uso del cache#

# Primera llamada: fuente "fresh" (dato generado y guardado en Redis)
curl http://localhost:3001/data/test
# { "source": "fresh", "data": { ... } }

# Segunda llamada: fuente "cache" (leido directamente de Redis)
curl http://localhost:3001/data/test
# { "source": "cache", "data": { ... } }

Health checks#

ServicioCheckComando
RedisConectividadredis-cli ping
API Node.jsHTTP /healthwget -qO- http://localhost:3000/health

La API espera a que Redis este saludable antes de arrancar (condition: service_healthy).


Arquitectura#

Cliente
  └── API Node.js 20 (:3000 → :3001)
        └── Redis 7 (:6379)

Despliegue en Kubernetes#

kubectl apply -f k8s/deployment.yaml

Verificacion#

# Estado de contenedores y health checks
docker compose ps

# Verificar Redis directamente
docker compose exec redis redis-cli ping
# PONG

# Verificar la API
curl http://localhost:3001/health
# {"ok":true,"ts":"..."}