Compartir vía


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 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.

En este tutorial, se incluyen dos métodos de autenticación: autenticación de Microsoft Entra y autenticación de Redis. La pestaña Sin contraseña muestra la autenticación de Microsoft Entra y la pestaña Contraseña muestra la autenticación de Redis.

La autenticación de Microsoft Entra es un mecanismo para conectarse a Azure Cache for Redis mediante identidades definidas en Microsoft Entra ID. Con la autenticación de Microsoft Entra, puede administrar identidades de usuario de base de datos y otros servicios de Microsoft en una ubicación central, lo que simplifica la administración de permisos.

La autenticación de Redis usa contraseñas en Redis. Si decide usar contraseñas como credenciales, debe administrar las contraseñas por su cuenta.

Prerrequisitos

Almacenamiento en caché de datos en Azure Cache for Redis

Con una instancia de Azure Cache for Redis, puede almacenar en caché los datos mediante Spring Cloud Azure.

Para instalar Spring Cloud Azure Starter Data Redis con el módulo Lettuce, agregue las siguientes dependencias al archivo de pom.xml:

<dependencies>
 <dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
 </dependency>
 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>5.20.1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Esta lista de materiales (BOM) debe configurarse en la sección <dependencyManagement> del archivo pom.xml. Esta configuración garantiza que todas las dependencias de Azure de Spring Cloud usen la misma versión. Para obtener más información sobre la versión que se usa para esta lista de materiales, consulte Qué versión de Spring Cloud Azure debo usar.

Codificar 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 de application.properties, como se muestra en el ejemplo siguiente.

    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    spring.data.redis.port=10000
    spring.data.redis.username=<your-redis-username>
    spring.data.redis.ssl.enabled=true
    spring.data.redis.azure.passwordless-enabled=true
    
    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    spring.data.redis.port=6380
    spring.data.redis.username=<your-redis-username>
    spring.data.redis.ssl.enabled=true
    spring.data.redis.azure.passwordless-enabled=true
    

    Nota

    Para obtener el valor de username, siga las instrucciones de la sección Habilitación de la autenticación de Microsoft Entra en la memoria caché de Uso de Microsoft Entra ID para la autenticación de caché y copie el valor username.

  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));
        }
    
    }
    

A continuación, inicie la aplicación. La aplicación recupera datos de la caché de Redis. Debería 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 para que los desarrolladores puedan centrarse en su código. Azure Spring Apps proporciona administración del ciclo de vida mediante supervisión y diagnósticos completos, administración de configuración, detección de servicios, integración de CI/CD, implementaciones azul-verde, etc. 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 sobre Spring y Azure, continúe con el Centro de documentación de Spring en Azure.