Uso de Azure Redis Cache en Spring

Azure Cache for Redis proporciona un almacén de datos en memoria basado en el software de Redis. Redis mejora el rendimiento y la escalabilidad de una aplicación que usa los almacenes de datos de back-end en gran medida.

En este tutorial se muestra cómo usar una caché de Redis para almacenar y recuperar datos en una aplicación de Spring Boot.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.

  • Java Development Kit (JDK) versión 8 o posterior.

  • Apache Maven, versión 3.0 o posterior.

  • cURL o una utilidad HTTP similar para probar la funcionalidad.

  • Una instancia de Caché de Redis. Si no tiene una, consulte Inicio rápido: Creación de una caché de Redis de código abierto.

  • Una aplicación de Spring Boot. Si no tiene ninguna, cree un proyecto de Maven con Spring Initializr. Asegúrese de seleccionar Proyecto de Maven y, en Dependencias, agregue las dependencias de Spring Web y Spring Data Reactive Redis y, a continuación, seleccione Java versión 8 o posterior.

Incorporación del código de la aplicación

Para usar una caché de Redis para almacenar y recuperar datos, configure la aplicación mediante los pasos siguientes.

  1. Configure las credenciales de caché de Redis en el archivo de configuración application.properties , como se muestra en el ejemplo siguiente.

    # Specify the DNS URI of your Redis cache.
    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    
    # Specify the port for your Redis cache.
    spring.data.redis.port=6379
    
    # Specify the access key for your Redis cache.
    spring.data.redis.password=<your-redis-access-key>
    

    Nota:

    Si utilizaba un cliente de Redis diferente como Jedis, que habilita SSL, debería especificar que va a utilizar SSL en el archivo application.properties y usar el puerto 6380. Por ejemplo:

    # Specify the DNS URI of your Redis cache.
    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    # Specify the access key for your Redis cache.
    spring.data.redis.password=<your-redis-access-key>
    # Specify that you want to use SSL.
    spring.data.redis.ssl.enabled=true
    # Specify the SSL port for your Redis cache.
    spring.data.redis.port=6380
    

    Para más información, consulte Inicio rápido: Uso de Azure Cache for Redis en Java.

  2. Edite el archivo de clase de inicio para mostrar el siguiente contenido. Este código almacena y recupera datos.

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    
    @SpringBootApplication
    public class DemoCacheApplication implements CommandLineRunner {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(DemoCacheApplication.class);
    
        @Autowired
        private StringRedisTemplate template;
    
        public static void main(String[] args) {
            SpringApplication.run(DemoCacheApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            ValueOperations<String, String> ops = this.template.opsForValue();
            String key = "testkey";
            if(!this.template.hasKey(key)){
                ops.set(key, "Hello World");
                LOGGER.info("Add a key is done");
            }
            LOGGER.info("Return the value from the cache: {}", ops.get(key));
        }
    
    }
    
  3. Inicie la aplicación. La aplicación recuperará datos de la caché de Redis. Verá registros similares al ejemplo siguiente:

    Add a key is done
    Return the value from the cache: Hello World
    

Implementación en Azure Spring Apps

Ahora que tiene la aplicación Spring Boot que se ejecuta localmente, es el momento de moverla a producción. Azure Spring Apps facilita la implementación de aplicaciones de Spring Boot en Azure sin cambios en el código. El servicio administra la infraestructura de las aplicaciones de Spring, con el fin de que los desarrolladores puedan centrarse en el código. Azure Spring Apps proporciona administración del ciclo de vida mediante el uso de una supervisión y un diagnóstico completos, administración de la configuración, detección de servicios, integración de CI/CD e implementaciones azul-verde, entre otros. Para implementar la aplicación en Azure Spring Apps, consulte Implementación de la primera aplicación en Azure Spring Apps.

Pasos siguientes

Para más información acerca de Spring y Azure, vaya al centro de documentación de Azure.