Conexión de una aplicación de Spring Boot a Azure Cache for Redis

En este tutorial se muestra cómo usar Azure Cache for Redis para almacenar y recuperar datos en una aplicación de Spring Boot. Mediante el uso de Azure Cache for Redis, puede mejorar el rendimiento y la escalabilidad de las aplicaciones que dependen en gran medida de los almacenes de datos de back-end.

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

Almacenar en caché datos en Azure Cache for Redis

Al usar una instancia de Azure Cache for Redis, puede almacenar datos en caché 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>7.4.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Configure esta lista de materiales (BOM) en la <dependencyManagement> sección del archivo pom.xml . Esta configuración garantiza que todas las dependencias de Spring Cloud Azure 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 Azure de Spring Cloud se debe 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.