¿Qué es la Caché?

Si vas a crear un sitio web necesitas brindar una buena experiencia al usuario y lo puedes hacer de muchas formas, hoy te cuento sobre optimizar la velocidad de carga de tus proyectos aprendiendo sobre la caché y sus tipos.

Diseño web
8 minutos
Hace 5 años
¿Qué es la Caché?

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

Tal Vez han escuchado términos como: "Está guardado en caché" "Debe limpiar la caché" "Vacíe la caché" pero ¿Qué es la caché? ¿Para qué sirve? ¿Cómo se usa?

Para que lo entiendas mejor empecemos con la historia de un emprendedor que aprendió a hacer pasteles por Youtube y como le salía bien en las pequeñas pruebas que hacía en su casa decidió que era el momento de tener sus primeros clientes.

Así que puso un letrero en la puerta de su casa que decía: Se vende Pasteles 5 pasteles por 1 dólar. Como eran tiempos de cuarentena y quizás no tenga muchos clientes a un inicio decidió esperar que el cliente llegue para preparar el producto.

Llegó el primer cliente y le pidió 10 pasteles el pastelero le dijo que demoraría 20 minutos en entregarle los pasteles. Que por favor espere. El cliente decidió esperar. Mientras tanto, el pastelero entró corriendo a su cocina, sacó los ingredientes, los puso todos en un bowl, uso la batidora para revolverlos y crear la masa. Una vez estaba todo listo formó los pasteles, les puso queso y los comenzó a freír.

El tiempo fue aproximadamente de 20 minutos que el cliente tuvo que esperar, el cual se fue satisfecho con el buen sabor del producto aunque algo extrañado por la demora.

Luego de eso, nuestro pastelero, muy ordenado como siempre, dejó limpia la cocina y todos los ingredientes en su lugar.

Llegó otro cliente y también pidió 10 pasteles, y aceptó esperar los 20 minutos. Nuestro personaje nuevamente fue corriendo a la cocina y sacó los ingredientes, preparó la masa, armó los pasteles, los frito y tenía nuevamente el pedido listo en 20 minutos. Segundo cliente satisfecho con el sabor pero también extrañado por la demora.

El rumor del buen producto que se ofrecía empezó a llegar a más personas. Al día siguiente tuvo 5 clientes y al tercer día tuvo 7 clientes, y al cuarto 10!. Pero nuestro querido panadero estaba a punto de colapsar sabía que si llegaban más clientes ya no podría abastecer, debía pensar en alguna estrategia.

La primera idea que se le ocurrió fue de preparar la cantidad necesaria de masa para preparar 100 pasteles lo que le garantizaba poder atender a 10 clientes de forma más eficiente. Ya que tenía una parte del proceso ya realizado el tiempo de espera para cada cliente bajó de a solo 10 minutos. Ahora solamente debía armar los pasteles y freírlos cada vez que un cliente nuevo llegase.

De esta manera pudo atender hasta 20 clientes cada día, ya que cuando se terminaba la primera masa volvía a repetir el proceso para otros 20 clientes.

El problema volvió cuando los clientes diarios empezaron a ser más de 20. Se volvió a planificar una mejora y se decidió tener los pasteles armados listos para freír. Entonces cada vez que llegaba un cliente ya solo debía freír los pasteles lo que le tomaba 2 a 3 minutos solamente.

El negocio creció a tal punto que nuestro emprendedor alquiló un local pequeño para montar su panadería. Y luego de una nueva planificación y análisis de las horas en las que llegaban más clientes y el total de pasteles vendidos por día, decidió comprar un mostrador y hacer pasteles listos para llevar. Los clientes ya no esperarían por los pasteles sino que el producto esperaría listo a que los clientes lleguen.

Cada vez que un cliente llegaba ya había 10 pasteles listos en una bolsa para ser entregados. Los clientes estaban asombrados con la velocidad de respuesta en la entrega del producto.

A partir de ese entonces, el empresario se dedicó a mejorar aún más el proceso de tal manera que podía atender a muchos más clientes fácil y rápidamente.

Entendemos caché como almacenamiento de recursos necesarios para ser entregados rápidamente cuando son solicitados.

Cuando entras una web le estás pidiendo al panadero que te entregue el producto. Si el navegador no puede entregarte el producto debido a que no lo tiene almacenado tendrá que ir a pedirle al servidor que lo prepare y que lo entregue. El servidor puede que tenga archivos listos para entregar al navegador (lo que conocemos como archivos estáticos). Pero en caso de que no se tuvieran estos archivos tendremos que llegar hasta la cocina y pedirle a la base de datos que nos prepare la información.

Aquí también pueden pasar 2 cosas, que la base de datos tenga lista la información que le solicitaste y te la pueda procesar fácilmente (query caché o caché engine) o que tenga que buscarla completa y en ese caso tendrá que ir a buscar los cursos más vistos, los últimos cursos, los posts de la comunidad. Todo el preparado completo.

En cambio, si pensamos como este pastelero pondremos varios niveles de Caché para tener información lista para el usuario con diferentes técnicas que están a nuestro alcance.

Caché del navegador

El primer nivel es uno en el que no tenemos que hacer nada. Y es la caché del navegador. El navegador se encarga de almacenar recursos de los sitios que visitas y cuando vuelves a visitar un sitio él no va a buscar esos recursos al servidor donde está alojado el sitio sino que simplemente los recupera de tu computadora en una carpeta creada por el navegador para guardar dichos archivos. Cuando nos referimos a vaciar caché del navegador estamos diciéndole al navegador que elimine todo lo que guardó y como no tiene nada guardado tendrá que ir nuevamente a buscar todo al servidor.

Archivos estáticos

Si la página que el usuario está consultando es una que no cambia nada o casi nada a lo largo del tiempo, podemos generar una versión estática de ese sitio. Entonces esta página ya no será construida yendo a consultar a la base de datos ni la lógica escrita en backend sino que será directamente un archivo plano (html) que se le ofrecerá rápidamente al usuario.

Caché Engine

Es una técnica un poco más avanzada en la que se crea una copia completa de la Base de datos y se la pone a disposición del backend utilizando la memoria RAM. De tal manera que la respuesta de esta sea muchísimo más veloz que consultarle a la base de datos.

Query caché

Los DBMS (MySQL o Postgres) traen incorporado un sistema de caché por medio de la cual puedes almacenar la respuesta a las consultas más frecuentes y de esa manera evitar el proceso de búsqueda de la información. Hoy en día existen aún varios niveles adicionales de caché pero los que he mencionado son los más utilizados a la hora de crear un sitio web.

Así que a partir de hoy, si vas a crear un sitio web, no seas el panadero que va a buscar todos los ingredientes cada vez que tiene un nuevo cliente. Utiliza la caché y brinda una mejor experiencia a tus usuarios. Además de darles un producto de buen sabor también dales una experiencia de usuario veloz en tu sitio web.

Comienza gratis en EDteam y alcanza tus sueños a través de la educación online de calidad.

"Programación desde 0"

Comentarios de los usuarios