Cachés y Redis

Completado

Es fundamental que las aplicaciones respondan rápidamente a las solicitudes del usuario. Cuando un sitio web es lento, los visitantes se frustran rápidamente y abandonarán su sitio, quizás para visitar a sus competidores. ¿Cómo puede crear una aplicación que responda rápidamente, incluso cuando se solicita un conjunto complejo de datos? Una manera de acelerar la aplicación es usar una memoria caché.

Imagine que trabaja para un distribuidor de equipamiento para actividades al aire libre. La nueva aplicación web está en desarrollo y varios microservicios se aproximan a su primera versión, pero algunas páginas se cargan con demasiada lentitud. Quiere encontrar una manera de aumentar su rendimiento.

En esta unidad, aprenderá cómo el almacenamiento en caché puede ayudar a aumentar la velocidad de una aplicación web.

¿Qué es Redis?

Redis es un almacén de información en memoria de código abierto. Su nombre es la abreviatura de para Remote Dictionary Server. Quizás la característica más importante de Redis es su baja latencia para las operaciones de lectura y escritura, que logra en virtud de su diseño y el hecho de que contiene toda la información en la memoria. Redis incluye la funcionalidad de base de datos y agente de mensajes, pero se reconoce ampliamente como un sistema de almacenamiento en caché.

Cómo mejora el rendimiento de una caché

Las memorias caché se pueden usar para mejorar el rendimiento de muchos sistemas que tardan en construir respuestas para sus usuarios. Considere, por ejemplo, un sitio web de comercio electrónico construido a partir de microservicios. Cuando un usuario quiere saber qué elementos están en su cesta de la compra, el sistema podría:

  1. Recibir la solicitud en el microservicio de la aplicación web.
  2. Llamar al microservicio de autenticación para comprobar la identidad de los usuarios si ha iniciado sesión.
  3. Llamar al microservicio de cesta de la compra para averiguar qué artículos y qué cantidades hay en la cesta.
  4. Llamar al microservicio del catálogo de productos para obtener detalles completos de cada producto.
  5. Llamar al microservicio de imagen para obtener blobs de imágenes para cada producto.
  6. Llamar al microservicio de toma de existencias para comprobar los niveles de existencias.
  7. Llamar al microservicio de envío para calcular los costos de envío de la ubicación y las preferencias del usuario.

Los pasos precisos pueden diferir en función del diseño y la funcionalidad empresarial, pero puede ver que el proceso puede ser complejo e implicar muchos microservicios y servicios de respaldo independientes. Aunque cada microservicio debe configurarse y tener recursos para funcionar bien, la construcción de la respuesta inevitablemente consume algo de tiempo.

Ahora imagine que el usuario actualiza la página. En lugar de reconstruir toda la respuesta HTML desde cero, si la página o partes de ella se habían almacenado en una memoria caché, se puede devolver al usuario mucho más rápido que la solicitud original. Esta respuesta rápida ayuda a que una aplicación web sea más dinámica y acogedora para los usuarios.

Consideraciones sobre la caché

Cuando se usa el almacenamiento en caché, una decisión de diseño clave es cuánto tiempo almacenar en caché un fragmento de contenido determinado. En la cesta de la compra, por ejemplo, si almacena en caché la página de la cesta completada durante una hora, durante la cual es probable que se realicen otros pedidos, la página almacenada en caché informará a veces de niveles de existencias no actualizados y los usuarios podrían tener que esperar más de lo previsto para la entrega. Si almacena en caché la página durante un solo minuto, puede estar más seguro de que los niveles de stock serán precisos, pero es posible que vea poco o ninguna mejora en el rendimiento. Por lo tanto, al elegir cuánto tiempo almacenar en caché la información, tenga en cuenta lo siguiente:

  • ¿Con qué frecuencia cambia la información? Por ejemplo, los niveles de stock pueden cambiar varias veces en una hora, pero los nuevos productos solo pueden aparecer en el catálogo cada pocos meses.
  • ¿Qué importancia tiene que los usuarios vean la información actualizada? Por ejemplo, los niveles de stock pueden ser fundamentales, pero puede considerar nuevas revisiones de productos menos tiempo críticas.
  • ¿Con qué frecuencia es probable que reciba solicitudes de información? El almacenamiento en caché de información popular produce una mejora de rendimiento más alta porque el sistema puede servirla desde la memoria caché varias veces.

Uso de Redis en proyectos de .NET Aspire

Redis es una opción popular para almacenar en caché en una aplicación nativa de la nube. .NET Aspire proporciona tres componentes que puede usar para interactuar con un servicio de Redis:

  • Componente .NET Aspire StackExchange de Redis: Use este componente para interactuar directamente con un servidor de Redis. Por ejemplo, puede usarlo para guardar y recuperar valores en la base de datos Redis o suscribirse a los mensajes enviados a un canal. Dado que este componente no se centra en el almacenamiento en caché, no lo consideraremos más en este módulo.
  • Componente de almacenamiento en caché de salida de .NET Aspire StackExchange Redis: Use este componente para almacenar en caché respuestas HTTP completas.
  • Componente de almacenamiento en caché distribuido de .NET Aspire StackExchange Redis: Use este componente de almacenamiento en caché para almacenar y recuperar datos de una caché distribuida. El almacenamiento en caché distribuido describe una arquitectura en la que varios microservicios u otros servicios cliente comparten una sola caché.

Saber más