Redis para aplicaciones de Java y Spring Boot
Mientras se implementa la instancia de Azure Cache for Redis, lea las secciones siguientes para obtener más información sobre las siguientes tecnologías:
- Redis y Azure Cache for Redis.
- Redis con aplicaciones de Java y Spring Boot.
- Caché distribuida de Spring Data Redis.
Redis y Azure Cache for Redis
Redis es un almacén de datos en memoria distribuido y de código abierto con licencia BSD, con una durabilidad opcional, que actúa como agente de caché y de mensajes. Redis es una de las bases de datos de pares clave-valor más populares. Es fácil de usar y ofrece un rendimiento y una escalabilidad que lo convierten en una opción excelente para los desarrolladores de aplicaciones.
Azure Cache for Redis es una versión administrada de Redis que Azure mantiene y opera en la nube. Proporciona todas las ventajas de Redis, incluidos un rendimiento y una capacidad de procesamiento excelentes, para administrar millones de solicitudes por segundo. Azure también proporciona las ventajas de un servicio en la nube administrado, como revisiones automáticas, actualizaciones, escalabilidad y aprovisionamiento.
Azure Cache for Redis ofrece varios niveles de servicio. Los niveles avanzados proporcionan agrupación en clústeres, replicación geográfica y alta disponibilidad para las cargas de trabajo más críticas.
Casos de uso de Azure Cache for Redis
Redis y Azure Cache for Redis proporcionan los siguientes casos de uso principales:
- Como caché distribuida, acelera las aplicaciones que se basan en bases de datos SQL. Redis puede reducir el costo de una aplicación, ya que el escalado de un clúster de Redis es más barato que el de una base de datos.
- Un almacén de datos de sesión HTTP almacena los datos de sesión, lo que permite escalar aplicaciones basadas en la sesión. Las aplicaciones que usan JavaServer Faces (JSF) o que almacenan datos de seguridad en la sesión del usuario suelen usar este mecanismo.
- Una solución de agente de mensajes implementa arquitecturas de publicación-suscripción o cola.
Uso de Redis con Java
Redis no proporciona una biblioteca oficial para desarrolladores de Java, pero hay varias bibliotecas de código abierto. Una de sus principales decisiones como desarrollador de Java es seleccionar la biblioteca que mejor se adapte a sus necesidades. Las bibliotecas más populares son las siguientes.
- Jedis es la biblioteca más usada, y es sencilla y fácil de usar.
- Lettuce es la biblioteca que se usa en este módulo, porque viene incluida con Spring Data for Redis. Tiene una gran compatibilidad asincrónica, que es importante si quiere crear una aplicación de Spring reactiva.
- Redisson es el cliente de Redis más avanzado. También puede usar Redisson como una memoria caché de segundo nivel de Hibernar si necesita esa característica.
Uso de Spring Data Redis para crear una memoria caché distribuida
Para crear una memoria caché distribuida mediante Redis con Spring Boot, normalmente con Spring Initializr, se requieren tres tareas principales:
- Agregar la biblioteca Spring Data Redis a la aplicación.
- Configurar el archivo application.yml para conectarse a la instancia de Azure Cache for Redis.
- Programar lógica de negocios con Spring Data Redis para almacenar y recuperar datos de la memoria caché.
En el módulo actual se usa la biblioteca Lettuce, pero no es necesario usar la biblioteca directamente a menos que necesite configuración avanzada. Spring Data controla el código de acceso a los datos usando un mecanismo con el que deben estar familiarizados la mayoría de los desarrolladores de Spring. También puede usar Spring Data para acceder a bases de datos SQL con la API JPA (Java Persistence API) y para acceder a bases de datos NoSQL, como MongoDB.
Para Spring Data es necesario crear las siguientes clases:
Un bean de Java para albergar los datos. Anote la clase con la anotación
@RedisHash
de Java para almacenar y recuperar datos de Redis a través de una clave específica.Un repositorio de Spring. Este repositorio es una clase de Java específica que puede crear, recuperar, actualizar y eliminar (CRUD) bases de datos en el bean de Java que almacena los datos. Por ejemplo, esta clase puede almacenar una instancia del bean o recuperar una lista de varios beans.
Puede insertar este repositorio de Spring en cualquier bean de Spring estándar. Por ejemplo, puede insertar el repositorio en un controlador REST para Spring MVC, que almacena y accede a los datos del repositorio.
Continúe con la siguiente unidad para crear una aplicación de Spring Boot con una memoria caché distribuida que use Spring Data Redis. Puede crear la aplicación mientras espera a que finalice la implementación de la memoria caché de Azure Cache for Redis.