Cache de la aplicación
Una de las cosas que hace que las aplicaciones sean más lentas o que consuman más recursos es tener que mover grandes cantidades de datos, por ejemplo si vamos a mostrar un listado de productos tenemos que enviar a cada petición las imágenes y el texto correspondiente.
Si bien esto es lo esperado, hay formas en las cuales podemos disminuir la carga al servidor de esto, ya que si necesitamos por ejemplo enviar el listado, y este no ha cambiado no vale la pena consultar la base de datos por cada petición idéntica.
En esta sección veremos a fondo que significa el cache y las opciones que tenemos para implementar una solución de este estilo en nuestras aplicaciones ASP.NET MVC.
¿Qué es el cache?
Primero vamos a definir un poco más a fondo este concepto, el cache no es más que el almacenamiento de datos para poder ser consumidos luego, de esta forma reutilizamos la información para todas las peticiones que se hagan sobre ella.
ASP.NET MVC tiene compatibilidad con varias herramientas que nos permiten manejar el cache de la aplicación de forma adecuada, por ello es importante dominar estos conceptos.
Tipos de Cache
Según la forma en la que implementemos el cache tenemos dos tipos o categorías, la primera categoría la responsabilidad recae sobre el servidor y la segunda categoría la responsabilidad recae sobre el cliente.
Ambas categorías tienen el mismo objetivo de disminuir el esfuerzo del servidor al almacenar los datos, la diferencia es que como sus nombres indican una lo hace directo en el servidor y otra lo hace en el cliente.
Cache en el servidor
El objetivo principal del cache en el servidor es disminuir la carga sobre el CPU y mejorar la respuesta de las peticiones hechas, con esto logramos tener más recursos disponibles para atender más peticiones, generalmente en esta categoría es que cae el cache de Base de Datos y de generación de documentos.
La disminución de la carga ocurre al disminuir la cantidad de llamados a consulta de datos tanto en la base de datos como en los procesos que la generan, ya que es más fácil servir contenido estático que dinámico, por supuesto esto también depende de la buena configuración de nuestro servidor.
Cache en el cliente
El cache en el lado cliente implica una dimensión diferente, ya que aquí lo que se busca es disminuir el consumo de ancho de banda de la aplicación, es decir, buscamos descargar la menor cantidad de datos desde el servidor.
Es posible utilizarlo gracias a las nuevas implementaciones de los navegadores que nos permiten almacenar contenido en el equipo cliente. Generalmente se utiliza para guardar archivos estáticos, como por ejemplo imágenes, hojas de estilos, archivos de Javascript.