Conectar um aplicativo Spring Boot ao Cache do Azure para Redis

Este tutorial mostra como usar Cache do Azure para Redis para armazenar e recuperar dados em um aplicativo Spring Boot. Usando Cache do Azure para Redis, você pode melhorar o desempenho e a escalabilidade para aplicativos que dependem fortemente de armazenamentos de dados de back-end.

Neste tutorial, incluímos dois métodos de autenticação: autenticação do Microsoft Entra e autenticação Redis. A guia Sem senha mostra a autenticação do Microsoft Entra, e a guia Senha mostra a autenticação Redis.

A autenticação do Microsoft Entra é um mecanismo para se conectar ao Cache do Azure para Redis usando identidades definidas na ID do Microsoft Entra. Com a autenticação do Microsoft Entra, você pode gerenciar identidades de usuário de banco de dados e outros serviços da Microsoft em um local central, o que simplifica o gerenciamento de permissões.

A autenticação Redis usa senhas no Redis. Se você optar por usar senhas como credenciais, precisará gerenciar as senhas por conta própria.

Pré-requisitos

Armazenar dados em cache no Cache do Azure para Redis

Usando uma instância de Cache do Azure para Redis, você pode armazenar dados em cache usando o Spring Cloud Azure.

Para instalar o módulo Spring Cloud Azure Starter Data Redis com Lettuce, adicione as seguintes dependências ao arquivo 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.3.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Configure esta Nota de Material (BOM) na <dependencyManagement> seção do arquivo pom.xml . Essa configuração garante que todas as dependências do Spring Cloud Azure usem a mesma versão. Para obter mais informações sobre a versão usada para este BOM, consulte qual versão do Spring Cloud Azure devo usar.

Codificar o aplicativo

Para usar um cache Redis para armazenar e recuperar dados, configure o aplicativo usando as seguintes etapas:

  1. Configure as credenciais de cache Redis no arquivo de configuração application.properties , conforme mostrado no exemplo a seguir.

    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 obter o valor de username, siga as instruções na seção Habilitar autenticação da ID do Microsoft Entra em seu cache de Usar a ID do Microsoft Entra para autenticação de cache e copie o valor de nome de usuário.

  2. Edite o arquivo de classe de inicialização para mostrar o conteúdo a seguir. Esse código armazena e recupera dados.

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

Em seguida, inicie o aplicativo. O aplicativo recupera dados do cache Redis. Você deve ver logs semelhantes ao seguinte exemplo:

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

Implantar no Aplicativos Spring do Azure

Agora que você tem o aplicativo Spring Boot em execução localmente, é hora de movê-lo para produção. O Aplicativos Spring do Azure facilita a implantação de aplicativos Spring Boot no Azure sem alterações de código. O serviço gerencia a infraestrutura de aplicativos Spring para que os desenvolvedores possam se concentrar em seu código. O Aplicativos Spring do Azure fornece gerenciamento de ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviço, integração de CI/CD, implantações azul-verde e muito mais. Para implantar seu aplicativo no Aplicativos Spring do Azure, confira Implantar seu primeiro aplicativo no Aplicativos Spring do Azure.

Próximas etapas

Para saber mais sobre o Spring e o Azure, prossiga para o centro de documentação do Spring on Azure.