Compartir a través de


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.

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 las identidades de los usuarios de la 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.

Requisitos previos

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

  • Java Development Kit (JDK) versión 17 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.

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 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>com.azure.spring</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.18.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota:

Esta lista de materiales (BOM) debe configurarse en la <dependencyManagement> sección 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 La versión de Spring Cloud que se debe usar en Azure.

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.

    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 Enable Microsoft Entra ID authentication on your cache (Habilitar la autenticación de Id. de Entra de Microsoft) en la memoria caché y copie el valor de nombre de usuario.

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