¿Qué es la caché? Guía sencilla para creadores de apps
Caché significa mantener una copia ya preparada de algo que era lento o caro de obtener, para que la siguiente petición de ese dato se responda rápido desde esa copia. La copia guardada se llama caché. Tu navegador guarda en caché las imágenes para que un sitio cargue más rápido en tu segunda visita; un servidor guarda en caché 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 vayan más rápido y sean más baratas de ejecutar. Su gran contrapartida es que una copia puede quedarse desactualizada.
Por qué importa la caché cuando creas con IA
Te encontrarás con la caché en apps creadas con IA de tres formas:
- «He actualizado la app pero sigo viendo la versión antigua». Es el momento más habitual con la caché, y normalmente no es grave: tu navegador o una CDN muestra una copia guardada.
- Velocidad. Si una página va lenta porque recalcula los mismos números para cada visitante, guardar el resultado en caché puede hacer que parezca instantánea.
- Coste. Muchos creadores 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 costosa, la caché te permite pagarla una sola vez.
Conocer lo básico te permite pedir caché donde ayuda y detectarla cuando es el motivo de que algo parezca mal.
Una analogía cotidiana
Piensa en la cocina de una cafetería con mucho movimiento.
Cada mañana, el cocinero 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 clientes recibe su taza en segundos —eso es un acierto de caché—. Cuando la jarra se acaba, se prepara una nueva —un fallo de caché—.
Pero el café que lleva mucho tiempo se estropea, así que la cafetería tiene una norma: tirar cualquier jarra de más de 30 minutos. Esa norma 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 guardarse 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é de CDN | Servidores repartidos por 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 en Redis | Resultados de consultas lentas o de llamadas a APIs externas | Los tipos de cambio de hoy, descargados una vez por hora |
| Caché de base de datos | Dentro de la propia base de datos | Datos recientes y planes de consulta | Las filas más usadas se quedan en memoria rápida |
Una CDN (red de distribución de contenidos) es, básicamente, una red mundial de cachés para los archivos de tu sitio.
Cómo decide una caché qué guardar
Toda caché tiene que responder a las mismas preguntas:
- ¿Qué se puede guardar? Datos públicos y compartidos (la imagen de un producto, una entrada del 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 guardarse un año; un nivel de stock, 30 segundos.
- ¿Cómo se actualiza? O bien la copia caduca y se vuelve a pedir, o bien la app la elimina a propósito cuando cambian los datos. Esto se llama invalidación.
En las webs, el servidor indica a navegadores y CDN cómo guardar 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 de los archivos estáticos con el cache busting (romper la caché): cada vez que un archivo cambia, recibe un nombre nuevo con una huella, como app.3f9a2c.js. Los navegadores pueden guardar el nombre antiguo durante mucho tiempo, porque la versión nueva simplemente tiene otro nombre.
Un ejemplo práctico: un catálogo de productos
Tienes una pequeña tienda online. La página de inicio muestra 50 productos con sus precios y stock desde 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 se guardan en caché en el navegador y en la CDN durante mucho tiempo. Cada nueva compilación da a los archivos cambiados nombres nuevos, 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 guardan en caché 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 al pagar nunca se guarda en caché. Cuando alguien pulsa «Comprar», la app consulta la base de datos real, así que no puede vender un artículo que acaba de agotarse.
- Las páginas del carrito y de la cuenta nunca se almacenan en cachés compartidas, porque son personales.
El resultado: la página de inicio es rápida, la base de datos hace mucho menos trabajo y nada que afecte al dinero o a 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 a propósito una copia guardada porque el original ha cambiado. |
| Cache busting | Cambiar el nombre o la URL de un archivo cuando cambia, para que las cachés descarguen la versión nueva. |
| Cache-Control | La cabecera HTTP que indica a navegadores y CDN cómo guardar una respuesta. |
| Recarga forzada | Recargar una página indicando al navegador que ignore su caché. |
| Redis | Un almacén de datos en memoria muy popular, a menudo usado como caché de aplicación. |
Ideas erróneas habituales
- «La caché siempre es buena». Guardar en caché lo que no toca provoca errores reales: precios antiguos, entradas nuevas que no aparecen o —el peor caso— la página privada de un usuario mostrada a otro. Guarda en caché con intención.
- «Si veo la versión antigua, mi actualización ha fallado». 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». Solo 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, hay que arreglarlo también.
- «Debería guardar todo en caché el mayor tiempo posible». Los tiempos largos son adecuados para archivos que reciben nombres nuevos al cambiar. Para páginas HTML y 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 con sus propias copias.
Qué pedir a tu creador de IA
- «¿Qué partes de esta app van lentas y cuáles se podrían guardar en caché con seguridad?»
- «Guarda en caché 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 guardarse en una CDN o caché compartida.»
- «Pon tiempos de caché largos para los archivos estáticos con huella y cortos para el HTML.»
- «Guarda en caché las respuestas de [API externa] para no llamarla en cada carga de página, e indícame cuánto podrían quedar obsoletos esos datos.»
- «Veo una versión antigua después de 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 un recargado forzado 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 guardar en caché 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. Cualquier cosa más allá de eso —guardar en caché resultados de consultas o respuestas de APIs— es algo que pides al agente que incorpore a tu app.
Lectura relacionada: qué es una CDN, cómo hacer tu web más rápida y qué es el limitado de peticiones (rate limiting).
Preguntas
¿Qué es la caché en términos sencillos?
Caché significa guardar una copia de algo que era lento o caro de obtener, de modo que la próxima vez que haga falta pueda servirse rápido desde esa copia. Los navegadores, las CDN, los servidores y las bases de datos usan cachés para que las apps vayan más rápido y sean más baratas de ejecutar.
¿Por qué sigo viendo la versión antigua de mi web después de actualizarla?
Probablemente tu navegador o una CDN está sirviendo una copia guardada de los archivos antiguos. Un recargado forzado (Ctrl+Mayús+R en Windows, Cmd+Mayús+R en Mac) suele solucionarlo. Para los visitantes, las webs bien hechas dan a los archivos actualizados nombres nuevos, de modo que las cachés descargan la versión nueva automáticamente.
¿Qué hace borrar la caché?
Borrar la caché del navegador elimina las copias guardadas de archivos y páginas, así que la próxima vez se descarga todo de nuevo. Puede arreglar páginas que se ven rotas o desactualizadas, y la primera carga posterior será algo más lenta.
¿Puede la caché causar problemas?
Sí. El riesgo principal es servir datos obsoletos —un precio antiguo, un nivel de stock desfasado— 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 guardar, durante cuánto tiempo, y nunca guardan datos personales en cachés compartidas.