¿Qué es el Caché? | Cómo Funciona el Caching

El caché almacena copias de datos en una capa de almacenamiento más rápida para que las solicitudes repetidas se sirvan sin acceder al origen. Aprende sobre cache hit vs miss, TTL, estrategias de caché y cabeceras HTTP de caché.

El caché almacena copias de datos en una capa de almacenamiento más rápida para que las solicitudes repetidas se sirvan sin acceder al origen — reduciendo la latencia, la carga del backend y los costos de infraestructura.


Resumen El caché es la práctica de almacenar una copia de datos en una capa de almacenamiento rápida y temporal (el caché) para que las solicitudes futuras puedan responderse sin repetir el cálculo original o la consulta a la base de datos. Un cache hit devuelve datos instantáneamente desde el caché. Un cache miss accede al origen y almacena el resultado para uso futuro. El caché reduce los tiempos de respuesta de cientos de milisegundos a menos de 10 milisegundos para solicitudes repetidas. Cada capa de la web moderna usa caché: CPUs, navegadores, servidores de aplicaciones, bases de datos, CDNs y redes distribuidas.


¿Qué es el caché?

El caché consiste en almacenar una copia reutilizable de datos en una capa de almacenamiento más rápida para que las solicitudes posteriores de los mismos datos puedan servirse sin repetir la obtención o el cálculo original.

La mecánica fundamental:

  • Cache hit — Los datos solicitados se encuentran en el caché. Se devuelven inmediatamente, sin necesidad de solicitar al origen.
  • Cache miss — Los datos solicitados no están en el caché. El sistema los obtiene del origen, los almacena en caché y los devuelve.
  • TTL (Time To Live) — La duración durante la cual un elemento en caché se considera válido antes de que deba actualizarse.
  • Eviction — Cuando el caché está lleno, los elementos antiguos o menos usados se eliminan para hacer espacio. Políticas comunes: LRU (Least Recently Used), LFU (Least Frequently Used), FIFO (First In First Out).

Tipos de caché

El caché ocurre en cada capa del stack tecnológico:

Capa de cachéDónde operaQué almacenaLatencia típica
Caché de CPU (L1/L2/L3)Dentro del procesadorInstrucciones y datos de la RAM< 1 nanosegundo
Caché del navegadorDispositivo del usuarioHTML, CSS, JavaScript, imágenes0 ms (disco local)
Caché de aplicaciónMemoria del servidor de aplicacionesResultados calculados, datos de sesión< 1 ms
Caché de consultas de base de datosCapa de base de datosConjuntos de resultados de consultas< 5 ms
Caché CDN / distribuidoNodos de red distribuidosContenido web estático y dinámico< 10 ms (PoP más cercano)
Caché DNSResolver y SOMapeos dominio-a-IP< 1 ms (después del primer lookup)

Estrategias de caché

EstrategiaCómo funcionaMejor paraRiesgo
Cache-aside (carga perezosa)La app verifica el caché primero; si hay miss, carga del origen y pobla el cachéCargas de trabajo de lectura intensaArranque en frío inicial
Write-throughCada escritura va al caché y al origen simultáneamenteDatos críticos de consistenciaEscrituras más lentas
Write-back (write-behind)Las escrituras van primero al caché; el origen se actualiza de forma asíncronaAlta capacidad de escrituraPérdida de datos si falla el caché
Read-throughEl caché gestiona la obtención de forma transparente; la app solo habla con el cachéSimplificar la lógica de la appDependencia de librería de caché
Stale-while-revalidateSirve contenido en caché obsoleto inmediatamente; actualiza en segundo planoRendimiento web, CDNObsolescencia breve aceptable

Cabeceras HTTP de caché

El caché de CDN y navegador se controla mediante cabeceras HTTP:

CabeceraSignificado
Cache-Control: max-age=3600Almacena en caché esta respuesta durante 3600 segundos (1 hora)
Cache-Control: no-storeNunca almacenar esta respuesta en ningún lugar
Cache-Control: no-cacheAlmacenarla en caché, pero revalidar con el origen antes de servir
Cache-Control: publicLa respuesta puede ser almacenada en cachés compartidos (CDNs, proxies)
Cache-Control: privateSolo el navegador del usuario final puede almacenarla en caché
ETagIdentificador único para una versión de un recurso; habilita solicitudes condicionales
VaryIndica a los cachés que almacenen versiones separadas según las cabeceras especificadas (p. ej., Vary: Accept-Encoding)

Invalidación del caché

La invalidación del caché es el proceso de eliminar o actualizar datos en caché antes de que expire su TTL. Es uno de los problemas más difíciles en los sistemas distribuidos.

Métodos:

  • Purge — Eliminar explícitamente una URL o clave específica del caché.
  • Invalidación basada en etiquetas — Agrupar entradas de caché por etiqueta y purgar todas las entradas que comparten una etiqueta a la vez.
  • URLs versionadas — Incrustar un hash de versión en las URLs de assets (p. ej., style.abc123.css); nueva versión = nueva URL = cache miss automático.
  • Surrogate keys — Usadas por CDNs para invalidar grupos de objetos relacionados con una sola llamada a la API.

Errores comunes de caché

ErrorConsecuenciaSolución
Almacenar en caché respuestas personalizadas sin VaryEl usuario A recibe los datos privados del usuario BAñade Vary: Cookie o evita cachear respuestas privadas
TTL establecido arbitrariamente altoContenido obsoleto mostrado a usuarios tras actualizacionesEstablece el TTL según la frecuencia real de cambios de los datos
Sin plan de invalidaciónErrores y contenido desactualizado persisten indefinidamenteImplementa endpoints de purga o URLs versionadas
Almacenar en caché respuestas de error (500)Respuestas de error servidas desde caché durante horasExcluye explícitamente los códigos de estado no 2xx del caché
Cache stampede al expirarPico de solicitudes al origen cuando un elemento popular expira simultáneamenteUsa stale-while-revalidate o request coalescing

Preguntas frecuentes

¿Qué es el caché en términos simples? El caché almacena una copia de los datos en un lugar más rápido para que los mismos datos puedan devolverse rápidamente la próxima vez sin volver a obtenerlos de la fuente original.

¿Qué es un cache hit vs un cache miss? Un cache hit significa que los datos solicitados se encontraron en el caché y se devolvieron inmediatamente. Un cache miss significa que los datos no estaban en el caché — el sistema tuvo que obtenerlos de la fuente original, lo que tarda más.

¿Qué es el TTL en caché? El TTL (Time To Live) es el número de segundos que un elemento en caché se considera válido. Un TTL de 3600 significa que el elemento está en caché durante 1 hora. Cuando el TTL expira, la siguiente solicitud desencadena una nueva obtención del origen.

¿Es una CDN lo mismo que el caché? No. Una CDN (Red de Distribución de Contenido) es una red distribuida de servidores. El caché es una de las técnicas que usan las CDNs. El caché también ocurre en navegadores, aplicaciones, bases de datos y otras capas completamente separadas de las CDNs.

¿Qué es la invalidación del caché y por qué es difícil? La invalidación del caché significa eliminar o actualizar datos en caché antes de que expire su TTL. Es difícil porque en los sistemas distribuidos, los mismos datos están en caché en múltiples lugares simultáneamente — una entrada de caché puede necesitar invalidarse en cientos de nodos de una red distribuida, múltiples cachés de navegador y cachés de nivel de aplicación a la vez.

¿Cómo funciona el caché del navegador? Los navegadores almacenan en caché los assets (imágenes, CSS, JavaScript) basándose en las cabeceras de respuesta HTTP. La cabecera Cache-Control: max-age le dice al navegador cuánto tiempo conservar el archivo. Cuando el TTL expira, el navegador solicita una versión actualizada al servidor.

¿Qué es stale-while-revalidate? Stale-while-revalidate es una directiva de caché donde el caché sirve una respuesta ligeramente desactualizada inmediatamente mientras simultáneamente obtiene una versión actualizada en segundo plano. Esto elimina la latencia de revalidación sin servir contenido significativamente desactualizado.

¿Cuál es la diferencia entre caché cache-aside y read-through? En cache-aside, el código de la aplicación gestiona el caché — verifica el caché y, si hay miss, carga los datos del origen y pobla el caché. En read-through, la capa de caché gestiona la obtención del origen de forma transparente, y la aplicación solo interactúa con el caché.

mantente actualizado

Suscríbete a nuestro boletín informativo

Recibe las últimas actualizaciones de productos, destacados de eventos y conocimientos de la industria tecnológica directamente en tu bandeja de entrada.