Arostik Logo
ArostikVLARCK

Micro-Technology Solutions

Bases de DatosNivel: Intermedio15 min de lección

¿Qué es Redis y cómo Funciona el Caching en Memoria?

Cómo almacenar datos en RAM con estructuras clave-valor, TTL, invalidación de caché y colas Pub/Sub para latencias submilisegundo.

¿Qué es Redis y cómo Funciona el Caching en Memoria?
AROS STUDENT
E
Equipo de Arquitectura de Datos ArostikEspecialistas en Bases de Datos y Caching · Actualizado el 25 sep 2026
¿Qué es Redis y por qué es Tan Rápido?

Las bases de datos relacionales tradicionales como PostgreSQL o MySQL guardan sus datos en discos duros o SSDs permanentes. Aunque utilicen memorias intermedias, cada consulta compleja con múltiples JOINs y agregaciones requiere operaciones de entrada/salida (I/O) a disco que tardan entre 10 y 100 milisegundos. **Redis** (Remote Dictionary Server) es una base de datos en memoria (In-Memory Database) de tipo clave-valor, extremadamente rápida y de código abierto. Al almacenar todos sus datos directamente en la **memoria RAM física**, Redis puede procesar más de **100,000 operaciones por segundo con latencias inferiores a un solo milisegundo (submilisegundo)**. Además de simples cadenas de texto, Redis soporta estructuras de datos avanzadas como Listas, Conjuntos (Sets), Conjuntos Ordenados (Sorted Sets), Hashes, Bitmaps y Streams, permitiendo implementar sistemas de ranking, colas de mensajería, control de sesiones y limitadores de tasa (Rate Limiters).

¿Por Qué Todas las Grandes Plataformas Usan Redis como Caché?
Ventajas y Beneficios:
  • ✓Velocidad Descomunal: Reduce el tiempo de respuesta de tu API de 80 ms a solo 1.2 ms.
  • ✓Descarga Masiva de la Base de Datos Principal: Al responder las consultas repetidas desde la RAM de Redis, tu servidor PostgreSQL solo recibe peticiones de escritura.
  • ✓Expiración Automática de Datos (TTL): Puedes asignar un tiempo de vida a cada dato (ej. `EXPIRE clave 3600`) para que se borre solo tras una hora sin intervención manual.
Problemas que resuelve:
  • •Evita que el servidor de base de datos colapse durante campañas de marketing masivas o picos de tráfico repentinos.
  • •Permite compartir sesiones de usuario activas entre múltiples servidores web sin que el usuario pierda su login.
  • •Facilita la creación de marcadores de puntajes y leaderboards en tiempo real con millones de jugadores.
El Archivador de la Biblioteca vs la Libreta de Apuntes en tu Bolsillo

Imagina que estás estudiando para un examen importante: - **PostgreSQL es el Archivo Central de la Biblioteca**: Contiene 500,000 libros clasificados en estanterías gigantescas. Cada vez que necesitas un dato, tienes que levantarte, caminar por los pasillos, buscar el pasillo 14, estante 3, sacar el libro pesado y buscar la página (consulta a disco lenta). - **Redis es la Libreta de Apuntes de Bolsillo**: En ella tienes anotadas en post-its amarillos las 10 fórmulas matemáticas que te preguntan en todas las pruebas. No tienes que levantarte de la silla: sacas la libreta del bolsillo y lees la fórmula en 1 segundo.

Conexión con la Tecnología:La primera vez que un usuario pide un dato, la aplicación va a la biblioteca (PostgreSQL), lo guarda en su libreta de bolsillo (Redis) y le responde. Los siguientes 10,000 usuarios recibirán el dato directamente desde la libreta de apuntes en RAM (Patrón Cache-Aside).

Explicación Paso a Paso del Tema

1

Comandos Fundamentales en la Terminal de Redis (redis-cli)

Conéctate al servidor Redis y prueba las operaciones básicas de guardado, lectura y asignación de tiempo de vida (TTL).

El comando `SET` guarda una clave, `GET` la recupera y `EX` define los segundos de vida.

Comando de Terminal / Código
# Guardar un valor con expiración automática de 60 segundos:
SET usuario:42:perfil '{"nombre":"Carlos","rol":"admin"}' EX 60

# Obtener el valor desde la memoria RAM:
GET usuario:42:perfil

# Consultar cuántos segundos de vida le quedan a la clave:
TTL usuario:42:perfil
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
EX 60Parámetro TTLExpira y purga la clave de la memoria RAM automáticamente tras 60 segundos.
TTLComandoRetorna el tiempo restante en segundos antes de la evaporación del dato.
Consejo Profesional:

Usa dos puntos `:` en los nombres de las claves (ej. `app:users:10:settings`) para estructurar claves jerárquicas legibles.

2

Implementar el Patrón Cache-Aside en Código

El patrón de arquitectura de caché más utilizado en la industria funciona de la siguiente manera: 1. La app busca el dato en Redis. 2. **Si existe (Cache Hit)**: Lo devuelve al usuario de inmediato. 3. **Si no existe (Cache Miss)**: Lo consulta en PostgreSQL, lo guarda en Redis con un TTL prudente y lo devuelve al usuario.

Si el usuario actualiza su perfil, la app debe borrar inmediatamente la clave en Redis (`DEL usuario:42`) para evitar servir datos obsoletos.

Comando de Terminal / Código
async function obtenerPerfil(userId) {
  const cacheKey = `user:${userId}`;
  const cached = await redis.get(cacheKey);
  if (cached) return JSON.parse(cached); // CACHE HIT (1 ms)

  const user = await db.query('SELECT * FROM users WHERE id = $1', [userId]); // CACHE MISS (40 ms)
  await redis.set(cacheKey, JSON.stringify(user), 'EX', 3600); // Guardar por 1 hora
  return user;
}
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
redis.getMétodoConsulta ultra-rápida a la memoria RAM de Redis.
redis.set(..., 'EX', 3600)MétodoAlmacena el resultado para que las futuras consultas no toquen la base de datos.
Error Común a Evitar:

Olvidar configurar un límite máximo de memoria (`maxmemory`) y una política de desalojo (como `allkeys-lru`): si la RAM se llena, el servidor Redis podría colapsar.

3

Persistencia en Redis: RDB y AOF

Aunque Redis opera en RAM, no significa que pierdas tus datos si se corta la electricidad.

Redis ofrece dos métodos de persistencia en disco: - **RDB (Snapshotting)**: Guarda una foto compacta de toda la base de datos a disco cada X minutos. - **AOF (Append Only File)**: Registra cada comando de escritura en un log secuencial en disco para recuperación ante desastres con cero pérdida.

Consejo Profesional:

En entornos de producción, combina RDB (para restauraciones rápidas) con AOF (para máxima durabilidad de datos).

Casos Prácticos Reales en Producción

Situaciones de ingeniería reales sin mención de presupuestos ficticios.

1La Caída de una Tienda de Boletos de Concierto en el Minuto Uno

Escenario Real:

Una boletería online lanzó a la venta entradas para un concierto de rock masivo. 200,000 personas entraron en el primer segundo, disparando 200,000 consultas `SELECT * FROM asientos` a PostgreSQL, saturando el pool de conexiones y tirando el sitio.

Solución de Ingeniería Aplicada:

Colocaron Redis al frente. El mapa de asientos disponibles se cargó en un Set de Redis en memoria RAM, y las reservas se procesaron con transacciones atómicas de Redis (`MULTI / EXEC`).

Fichas Nemotécnicas de Conceptos Clave

Glosario rápido para recordar los términos fundamentales de la lección.

In-Memory Database

Base de datos que reside primordialmente en la memoria de acceso aleatorio (RAM) de la computadora para lograr máxima velocidad de lectura y escritura.

TTL (Time-To-Live)

Mecanismo que define el período de validez tras el cual una clave es eliminada automáticamente de la memoria.

LRU (Least Recently Used)

Algoritmo de expulsión que elimina automáticamente las claves menos utilizadas cuando la memoria RAM alcanza su capacidad máxima.

Autoevaluación Rápida3 preguntas

¿Qué es Redis y cómo Funciona el Caching en Memoria?

Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.

Aciertos: 0 / 3
1

¿Por qué Redis es capaz de procesar cientos de miles de operaciones por segundo con latencias menores a 1 milisegundo?

2

¿En qué consiste el patrón de arquitectura 'Cache-Aside'?

3

¿Qué ocurre cuando se asigna un TTL (Time-To-Live) a una clave en Redis (ej. 'EX 3600')?

Preguntas Frecuentes (FAQ)

¿Redis puede utilizarse como base de datos primaria sin PostgreSQL?

Sí, para ciertos casos específicos como almacén de sesiones, carritos de compras efímeros o colas de trabajo. Sin embargo, para datos relacionales críticos que requieren transacciones bancarias complejas con JOINs profundos, se suele utilizar PostgreSQL como base de datos de origen y Redis como acelerador de caché.

¿Cuál es la diferencia entre Redis y Memcached?

Memcached es un sistema simple de almacenamiento clave-valor en memoria de cadenas de texto sin persistencia. Redis es inmensamente más avanzado: soporta estructuras de datos ricas (conjuntos ordenados, hashes, listas), persistencia en disco (RDB/AOF), replicación y soporte nativo de mensajería Pub/Sub.

Temas relacionados:#Bases de Datos#Redis#NoSQL#Caching#Performance#Backend