Caché
Guardar una copia de una respuesta a mano para no tener que calcularla de nuevo.
Usar una caché (o cachear) significa guardar el resultado de algo lento o caro, una consulta a la base de datos, una página web, una foto, un cálculo, en un lugar rápido de leer, para que la próxima vez que alguien lo pida le des la copia guardada. Cuando la respuesta está ahí, es un cache hit; cuando no, es un cache miss: hacés el trabajo lento y en general guardás el resultado para la próxima.
En un solo clic hay cachés por todos lados. Tu navegador guarda imágenes y archivos de los sitios que visitás. Una CDN guarda copias de páginas en ciudades cerca tuyo. La aplicación guarda en memoria los resultados más pedidos de la base de datos, muchas veces en una herramienta como Redis. La base de datos tiene los datos más usados en RAM en vez de en disco. Hasta el procesador tiene su propia caché de CPU. Cada capa se ahorra un viaje a algo más lento.
Lo difícil es saber cuándo una copia guardada quedó vieja. Si un precio cambia pero la caché sigue teniendo el anterior, la gente ve el precio equivocado. Las respuestas típicas son darle a cada dato un vencimiento (un TTL, time to live) o borrarlo de la caché cada vez que cambia el original, lo que se llama invalidación de caché. Hacerlo mal es una fuente clásica de bugs desconcertantes, y por eso hay un chiste entre programadores que dice que es uno de los dos problemas difíciles de la informática.
Para quedarse
- Una caché guarda copias de resultados lentos de conseguir en un lugar rápido.
- Un hit se sirve desde la caché; un miss hace el trabajo lento y guarda el resultado.
- Navegadores, CDNs, aplicaciones, bases de datos y procesadores, todos cachean.
- Lo difícil es la invalidación: no servir datos viejos.