Volver a Redis Básico

Introducción a Redis

¿Qué es Redis?

Redis (Remote Dictionary Server) es un almacén de estructuras de datos en memoria usado como base de datos, caché, broker de mensajes y motor de streaming. Características clave:

  • En memoria: latencia de sub-milisegundo
  • Persistencia: snapshots RDB y AOF opcionales
  • Tipos de datos ricos: Strings, Hashes, Lists, Sets, Sorted Sets, Streams, HyperLogLog

Inicio Rápido con Docker

services: redis: image: redis:7-alpine command: redis-server --requirepass "tupassword" --appendonly yes ports: - "6379:6379" volumes: - redis_data:/data volumes: redis_data:

Comandos Básicos de redis-cli

# Conectar redis-cli -h localhost -p 6379 -a tupassword # Estado del servidor PING → PONG INFO server INFO memory DBSIZE → número de claves

Strings — El Tipo Universal

# SET y GET SET nombre "Alicia" GET nombre # "Alicia" # Incremento/decremento atómico SET contador 0 INCR contador # 1 INCRBY contador 5 # 6 DECR contador # 5 INCRBYFLOAT precio 1.25 # Expiración SET token_sesion "abc123" EX 3600 # expira en 3600 segundos SET token "xyz" PX 60000 # expira en 60000 milisegundos TTL token_sesion # segundos restantes # Modificadores NX / XX SET usuario:1 "Alicia" NX # solo si NO existe SET usuario:1 "Roberto" XX # solo si YA EXISTE # Operaciones masivas MSET clave1 val1 clave2 val2 clave3 val3 MGET clave1 clave2 clave3

Convención de Nomenclatura de Claves

# Usar ':' como separador de namespace usuario:1001:nombre usuario:1001:email producto:42:precio sesion:abc123 cache:busqueda:smartphones:pagina:1

Gestión de Claves

# Verificar existencia EXISTS usuario:1001 # 1 (sí) o 0 (no) # Eliminar DEL usuario:1001 DEL clave1 clave2 clave3 # Escanear por patrón (nunca usar KEYS en producción) SCAN 0 MATCH "usuario:*" COUNT 100 # Tipo de dato TYPE contador # string TYPE miset # set # Renombrar RENAME clave_vieja clave_nueva # Persistir (quitar TTL) PERSIST token_sesion

Persistencia de Datos

# redis.conf save 900 1 # guardar si >= 1 cambio en 900s save 300 10 # guardar si >= 10 cambios en 300s appendonly yes appendfsync everysec # fsync cada segundo (recomendado)
# Snapshot manual BGSAVE # Último guardado LASTSAVE