Caché: definición y todos los campos donde se usa

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (móvil)

Organizamos los campos donde se usa la caché, del hardware a la web, en un solo árbol según las clasificaciones de Wikipedia, MDN y la documentación oficial de WordPress. CPU, sistemas operativos, bases de datos y navegadores usan el mismo nombre, así que «vaciar la caché» borra cosas distintas según la capa.

La caché guarda temporalmente datos de uso frecuente o que se necesitarán pronto en un almacenamiento más rápido que el original y, cuando llega la misma solicitud, responde con esa copia en lugar del original.

El artículo de la Wikipedia en inglés Cache (computing) divide la caché en cachés de hardware, como las de CPU y GPU, y cachés de software, como las de disco, web, DNS y bases de datos. El árbol de abajo agrupa esta clasificación según dónde se ubica cada caché, y la caché web sigue la clasificación de MDN en private cache y shared cache.

🗂️ Dónde se usa la caché
├─ 💻 Ⅰ. Dispositivos del usuario
│ ├─ Caché del sistema operativoCaché de disco · caché DNS
│ ├─ Caché del navegadorLa private cache de la caché HTTP
│ └─ Caché de apps móvilesMiniaturas · datos de sesión
├─ 🖥️ Ⅱ. Servidor y aplicación
│ ├─ Caché de páginaHTML terminado (WP Rocket · caché FastCGI)
│ ├─ OPcacheBytecode PHP
│ ├─ Caché de objetosRedis · Memcached
│ └─ Caché de frameworks webLaravel · Django
├─ 🌐 Ⅲ. Entrega de contenido · red
│ ├─ CDNLa shared cache de la caché HTTP
│ ├─ Caché de proxyDirecto · inverso (Varnish)
│ └─ Caché de redCaché ARP · caché del resolvedor DNS
├─ 🗄️ Ⅳ. Base de datos · almacenamiento
│ ├─ Caché interna de la BDBuffer pool de InnoDB · Shared Buffers
│ └─ Caché de almacenamientoControladora de disco · DRAM del SSD
├─ ⚙️ Ⅴ. Hardware
│ ├─ Caché de la CPUL1 · L2 · L3 · TLB
│ └─ Caché de la GPUDatos de texturas · shaders
└─ ☁️ Ⅵ. Nube · virtualización
├─ Caché de contenedoresCapas de Docker
├─ Funciones serverlessWarm Start
└─ Caché de compilaciónDependencias · resultados de CI/CD

El orden en que la caché del navegador, el CDN y la caché interna del servidor procesan una solicitud de WordPress se puede ver con el simulador del artículo Caché del sitio web & caché interna del servidor: cómo funciona la caché en WordPress .

Ⅰ. Dispositivos del usuario

  • ↳ Caché del lado del cliente

La caché de los dispositivos del usuario, como ordenadores y smartphones, se divide en caché del sistema operativo, caché del navegador y caché de apps móviles.

Caché del sistema operativo (SO)Memoria del dispositivo (RAM)
Qué guardaDatos leídos del disco · dominios y direcciones IP

La caché de disco (page cache) mantiene en memoria los datos leídos del disco y la gestiona el kernel del sistema operativo. La caché DNS guarda los dominios y direcciones IP consultados recientemente.

Caché de discoCaché DNS
Caché del navegadorAlmacenamiento del navegador
Qué guardaHTML · CSS · JS · imágenes · fuentes

Cuando se vuelve a pedir el mismo recurso, no llega al servidor o solo comprueba si ha cambiado. Con un Service Worker (Cache API), una web app puede abrirse con los recursos guardados incluso sin conexión.

private cacheService Worker
Caché de apps móvilesAlmacenamiento de la app
Qué guardaMiniaturas · parte del contenido · estado de sesión

Las apps que manejan contenido pesado guardan en el dispositivo los datos descargados y las listas vistas recientemente para no volver a descargarlos.

YouTubeInstagram

Ⅱ. Caché del servidor y de aplicaciones

  • ↳ Caché del lado del servidor

La caché del lado del servidor se aplica al proceso de crear la página después de que la solicitud llega al servidor. La documentación oficial de WordPress la explica como plugins de caché (caché de página), caché de objetos y caché del servidor (cachés de opcode como OPcache).

Caché de páginaDisco · memoria del servidor
Qué guardaPágina HTML terminada

Ante una solicitud de la misma página, envía la copia guardada sin ejecutar PHP. Hay plugins de caché y cachés del servidor web.

WP RocketCaché FastCGI de NginxLiteSpeed Cache
OPcacheMemoria del servidor
Qué guardaBytecode PHP compilado

Al volver a ejecutar el mismo archivo, se omite la compilación. Viene incluido desde PHP 5.5.

caché de opcode
Caché de objetosMemoria del servidor
Qué guardaResultados de consultas · datos de sesión

Guarda los datos de uso frecuente en un almacén en memoria para no repetir la misma consulta.

RedisMemcached
Caché de frameworks webAplicación
Qué guardaPlantillas · rutas · resultados de consultas

Los frameworks web guardan las plantillas renderizadas y los resultados de consultas en su propia caché.

LaravelDjango

Ⅲ. Caché de entrega de contenido / infraestructura de red

Las cachés de la infraestructura de red responden con copias entre el visitante y el servidor de origen, reduciendo la distancia física y la carga del origen. En el estándar de caché HTTP corresponden a la shared cache que comparten muchos visitantes.

CDNServidores edge
Qué guardaArchivos estáticos · páginas

Entrega el contenido desde el servidor más cercano al visitante entre servidores repartidos por todo el mundo. Su estructura y ventajas están en ¿Qué es un CDN? Razones para usarlo y 5 ventajas (artículo aparte).

CloudflareAkamaiFastlyQUIC.cloud
Caché de proxyServidor proxy
Qué guardaRespuestas del servidor

Un proxy directo guarda las respuestas del lado del cliente, como en una red de empresa, y un proxy inverso las guarda delante del servidor.

Varnish CacheProxy inverso de Nginx
Caché de redEquipos de red · resolvedores DNS
Qué guardaRelación IP–MAC · resultados de consultas DNS

Los equipos de red guardan la relación IP–MAC en la caché ARP, y los resolvedores DNS de operadoras y públicos guardan los resultados durante el TTL del registro.

Caché ARPCaché del resolvedor DNS

Ⅳ. Caché de bases de datos y almacenamiento

Como la E/S de disco es lenta, las bases de datos y los dispositivos de almacenamiento mantienen en memoria los datos que se leen a menudo.

Caché interna de la base de datosMemoria del servidor de BD
Qué guardaDatos de lectura frecuente · índices

Mantiene en memoria los datos y los índices que se leen a menudo. La caché de consultas de MySQL se eliminó en 8.0; MariaDB la conserva, pero desactivada por defecto.

Buffer pool de InnoDBPostgreSQL Shared BuffersMongoDB WiredTiger
Caché de almacenamientoMemoria dentro del almacenamiento
Qué guardaLecturas · escrituras recientes

La memoria integrada en la controladora del disco duro y la DRAM del SSD guardan datos temporalmente y reducen la latencia de E/S.

Caché de la controladora de discoDRAM de SSD · NVMe

Ⅴ. Caché a nivel de hardware

Las cachés de hardware son memorias de alta velocidad dentro de la CPU y la GPU que procesan datos más rápido que la memoria principal (RAM).

Caché de la CPUDentro del procesador
Qué guardaInstrucciones · datos · traducciones de direcciones

La L1 existe por separado en cada núcleo y se divide en caché de instrucciones y de datos, mientras que la L3 la comparten todos los núcleos. La unidad de gestión de memoria (MMU) guarda en la TLB los resultados de traducir direcciones virtuales a físicas.

L1L2L3TLB
Caché de la GPUDentro de la unidad de procesamiento gráfico
Qué guardaTexturas · instrucciones de shaders · resultados intermedios

Mejora la eficiencia de la GPU en juegos, gráficos 3D y cálculos de aprendizaje automático.

Ⅵ. Caché en la nube / virtualización

Los entornos de nube y virtualización reutilizan imágenes de contenedores, entornos de ejecución de funciones y resultados de compilación para acortar el despliegue y la ejecución.

Caché de contenedoresServidores de compilación · registros
Qué guardaCapas de imagen

Una imagen de Docker se compone de varias capas, y las capas que no han cambiado no se vuelven a compilar ni a descargar.

Docker
Funciones serverlessEntorno de ejecución en la nube
Qué guardaEntorno de ejecución

Mantiene durante un tiempo el entorno de ejecución de una invocación terminada y lo reutiliza en la siguiente, reduciendo el tiempo de inicialización (Cold Start) (Warm Start).

AWS LambdaGoogle Cloud Functions
Caché de compilaciónAlmacenamiento de caché de CI
Qué guardaBibliotecas de dependencias · resultados compilados

Acorta los tiempos de compilación repetidos.

GitHub ActionsGitLab CI

🔢 FAQ & contenido recomendado

No. Borrar la caché del navegador solo elimina las copias guardadas en el dispositivo del visitante. La caché de página del servidor y las copias del CDN las vacía el administrador del sitio desde el plugin de caché o el panel del CDN.

La primera solicitud tras vaciarla llega hasta el origen, así que responde más lento de lo normal. Cuando esa solicitud vuelve a crear la copia, las siguientes recuperan la velocidad habitual, y la [Precarga] de WP Rocket crea las copias de antemano tras vaciarla.

En Windows, los tamaños de caché L1, L2 y L3 aparecen en la parte inferior del Administrador de tareas, en [Rendimiento] → [CPU]. En Linux, puedes ver los mismos valores en la salida del comando [lscpu].

💾 Artículos sobre caché 10 artículos
🗂️ Caché
📋 Caché: definición y campos 📄 Caché del sitio web y del servidor
📋 Guía de ajustes de WP Rocket 📝 Zend OPcache 📝 Instalar Redis Cache
📝 ¿Qué es un CDN? 📝 Varnish Cache
📋 Prueba de velocidad de WP Rocket 📝 Caso de mejora de velocidad 📝 Plugins de caché y optimización

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Demuestra que eres humano: 8   +   6   =