¿Qué es la caché? Guía sencilla para creadores de apps
Cachear significa guardar una copia lista de algo que era lento o caro de obtener, para que la siguiente petición de ese dato pueda responderse rápido desde esa copia. La copia guardada se llama caché. Tu navegador guarda en caché las imágenes para que una web cargue más rápido en tu segunda visita; un servidor guarda el resultado de una consulta lenta a la base de datos para no tener que ejecutarla para cada visitante.
La caché hace que las apps sean más rápidas y más baratas de ejecutar. Su gran inconveniente es que una copia puede quedar desactualizada.
Por qué importa la caché cuando construyes con IA
Te encontrarás con la caché en apps construidas con IA de tres formas:
- «He actualizado la app, pero sigo viendo la versión antigua». Es el momento de caché más habitual, y normalmente no es grave: tu navegador o una CDN muestra una copia guardada.
- Velocidad. Si una página es lenta porque recalcula los mismos números para cada visitante, cachear el resultado puede hacerla sentirse instantánea.
- Coste. Muchos constructores de apps y hosts cobran por cómputo, tiempo de base de datos y llamadas a APIs externas. Si mil visitantes disparan la misma petición cara, la caché te permite pagarla una sola vez.
Conocer lo básico te permite pedir caché donde ayuda y reconocerla cuando es la causa de que algo parezca incorrecto.
Una analogía cotidiana
Piensa en la cocina de una cafetería con mucho movimiento.
Cada mañana, el chef podría preparar cada café con granos recién molidos cuando se pide. Eso es lento. En su lugar, mantiene una jarra de café de filtro lista en la placa calefactora. La mayoría de los clientes reciben su taza en segundos —eso es un acierto de caché—. Cuando la jarra se acaba, alguien prepara una nueva —un fallo de caché—.
Pero el café que lleva mucho tiempo se estropea, así que la cafetería tiene una regla: tirar cualquier jarra de más de 30 minutos. Esa regla es el tiempo de caducidad de la caché. Nadie guardaría la misma jarra todo el día, y nadie prepararía de antemano el pedido personalizado de alguien con leche de avena y tres azúcares: algunas cosas no deben cachearse nunca.
Dónde viven las cachés
Una sola carga de página puede pasar por varias cachés, de la más cercana al usuario a la más lejana:
| Caché | Dónde está | Qué suele guardar | Ejemplo |
|---|---|---|---|
| Caché del navegador | En el dispositivo del visitante | Imágenes, hojas de estilo, scripts, fuentes | Tu logo carga al instante en la segunda página |
| Caché CDN | Servidores de todo el mundo, cerca de los visitantes | Archivos estáticos y a veces páginas completas | Un visitante en Tokio recibe los archivos de un servidor cercano, no de tu origen |
| Caché de aplicación | En tu servidor o junto a él, a menudo en memoria o Redis | Resultados de consultas lentas o de llamadas a APIs externas | Los tipos de cambio de hoy, obtenidos una vez por hora |
| Caché de base de datos | Dentro de la base de datos | Datos usados recientemente y planes de consulta | Las filas populares se quedan en memoria rápida |
Una CDN (red de distribución de contenidos) es, en esencia, una red mundial de cachés para los archivos de tu sitio.
Cómo decide una caché qué guardar
Toda caché tiene que responder las mismas preguntas:
- ¿Qué se puede cachear? Datos públicos y compartidos (una imagen de producto, una entrada de blog): sí. Datos privados (la página de cuenta de un usuario, sus mensajes): nunca en una caché compartida.
- ¿Durante cuánto tiempo? Es el TTL (time to live, tiempo de vida). Un logo puede cachearse un año; un nivel de stock, 30 segundos.
- ¿Cómo se actualiza? O bien la copia caduca y se vuelve a obtener, o bien la app elimina deliberadamente la copia cuando cambian los datos. A esto se le llama invalidación.
En las webs, el servidor indica a navegadores y CDN cómo cachear cada archivo mediante la cabecera Cache-Control. Por ejemplo, Cache-Control: max-age=3600 significa «puedes reutilizar esta copia durante una hora».
Las herramientas de compilación modernas resuelven la parte más difícil para los archivos estáticos con el cache busting: cada vez que un archivo cambia, recibe un nombre nuevo con una huella, como app.3f9a2c.js. Los navegadores pueden cachear el nombre antiguo durante mucho tiempo, porque la nueva versión simplemente tiene otro nombre.
Ejemplo práctico: un catálogo de productos
Tienes una pequeña tienda online. La página de inicio muestra 50 productos con precios y niveles de stock de la base de datos, además de una lista de «tendencias» que requiere un cálculo lento sobre todos los pedidos.
- Imágenes y scripts los cachean el navegador y la CDN durante mucho tiempo. Cada nueva compilación da a los archivos cambiados nuevos nombres, así que las actualizaciones siguen apareciendo.
- La lista de tendencias se calcula una vez cada 10 minutos y se guarda en una caché de aplicación. Todos los visitantes de esos 10 minutos reciben el resultado guardado al instante.
- Los precios se cachean durante poco tiempo, y la caché se borra cada vez que editas un producto, para que los clientes nunca vean un precio antiguo durante mucho tiempo.
- El stock en el pago nunca se cachea. Cuando alguien pulsa «Comprar», la app consulta la base de datos real, así que no puede vender un artículo que se acaba de agotar.
- Las páginas del carrito y de la cuenta nunca se guardan en cachés compartidas, porque son personales.
El resultado: la página de inicio es rápida, la base de datos trabaja mucho menos y nada que importe para el dinero o la privacidad queda obsoleto.
Términos clave
| Término | Significado |
|---|---|
| Acierto / fallo de caché | El dato estaba en la caché / hubo que obtenerlo de la fuente. |
| TTL (time to live) | Cuánto tiempo se considera fresca una copia guardada. |
| Datos obsoletos | Una copia guardada que ya no está al día. |
| Invalidación | Eliminar deliberadamente una copia guardada porque el original cambió. |
| Cache busting | Cambiar el nombre o la URL de un archivo cuando cambia, para que las cachés descarguen la nueva versión. |
| Cache-Control | La cabecera HTTP que indica a navegadores y CDN cómo cachear una respuesta. |
| Recarga forzada | Recargar una página indicando al navegador que ignore su caché. |
| Redis | Un almacén de datos en memoria muy usado, a menudo como caché de aplicación. |
Conceptos erróneos habituales
- «Cachear siempre es bueno». Cachear lo que no toca causa errores reales: precios antiguos, entradas nuevas que no aparecen o, en el peor de los casos, la página privada de un usuario mostrada a otro. Cachea con criterio.
- «Si veo la versión antigua, mi actualización falló». Normalmente no. Prueba una recarga forzada (Ctrl+Mayús+R, o Cmd+Mayús+R en Mac) o una ventana privada antes de dar algo por roto.
- «La caché arregla una app lenta». Oculta la lentitud en peticiones repetidas. La primera petición sigue siendo lenta, y si el problema de fondo es un índice que falta en la base de datos, arréglalo también.
- «Debo cachear todo el máximo tiempo posible». Los tiempos largos son adecuados para archivos que reciben nombres nuevos cuando cambian. Para las páginas HTML y los datos, los tiempos cortos son más seguros.
- «Borrar mi caché lo arregla para todos». Solo borra tu navegador. Los visitantes y las cachés de la CDN siguen teniendo sus propias copias.
Qué pedir a tu constructor de apps con IA
- «¿Qué partes de esta app son lentas y cuáles podrían cachearse con seguridad?»
- «Cachea [la lista de tendencias / el resultado de la API] durante [N] minutos, y bórrala cuando cambien los datos subyacentes.»
- «Asegúrate de que ninguna página con datos personales o de cuenta pueda guardarla en caché una CDN o una caché compartida.»
- «Usa tiempos de caché largos para los archivos estáticos con huella y cortos para el HTML.»
- «Cachea las respuestas de [API externa] para no llamarla en cada carga de página, y dime cuánto podrían quedar desactualizados esos datos.»
- «Veo una versión antigua tras publicar. ¿Es la caché de mi navegador o algo no se ha desplegado?»
Caché en Mythex
Tras publicar una actualización de una app de Mythex, la documentación indica que las cachés de la CDN pueden tardar un poco en actualizarse, y que una recarga forzada de la URL pública muestra la nueva versión; consulta Cómo publicar. La página de Límites de alojamiento también recomienda cachear los recursos estáticos, ya que el alojamiento, el tiempo de base de datos y el ancho de banda se pagan con tu saldo de créditos. Todo lo demás —cachear resultados de consultas o respuestas de APIs— es algo que pides al agente que construya dentro de tu app.
Lecturas relacionadas: qué es una CDN, cómo hacer tu web más rápida y qué es el limitado de tasa (rate limiting).
Preguntas
¿Qué es la caché en pocas palabras?
Cachear significa guardar una copia de algo que era lento o caro de obtener, de modo que la próxima vez que se necesite pueda servirse rápido desde la copia guardada. Los navegadores, las CDN, los servidores y las bases de datos usan cachés para que las apps sean más rápidas y baratas de ejecutar.
¿Por qué sigo viendo la versión antigua de mi web tras actualizarla?
Lo más probable es que tu navegador o una CDN esté sirviendo una copia guardada de los archivos antiguos. Una recarga forzada (Ctrl+Mayús+R en Windows, Cmd+Mayús+R en Mac) normalmente lo soluciona. Para los visitantes, las webs bien hechas dan nuevos nombres a los archivos actualizados para que las cachés descarguen la nueva versión automáticamente.
¿Qué hace borrar la caché?
Borrar la caché del navegador elimina las copias guardadas de archivos y páginas que había almacenado, de modo que la próxima vez lo descarga todo de nuevo. Puede arreglar páginas que se ven rotas o desactualizadas, y las páginas cargarán un poco más lento la primera vez después.
¿La caché puede causar problemas?
Sí. El principal riesgo es servir datos obsoletos —un precio antiguo, un nivel de stock desactualizado— o, peor aún, guardar en caché la página privada de un usuario y mostrársela a otra persona. Las buenas reglas de caché deciden qué se puede cachear y durante cuánto tiempo, y nunca guardan datos personales en cachés compartidas.