Usar o Cache Redis do Azure no Spring
Cache do Azure para Redis fornece um armazenamento de dados na memória com base no software Redis. Redis melhora o desempenho e a escalabilidade de um aplicativo que usa fortemente armazenamentos de dados de back-end.
Este tutorial demonstra como usar um cache Redis para armazenar e recuperar dados em um aplicativo Spring Boot.
Neste tutorial, incluímos dois métodos de autenticação: autenticação 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 Redis do Azure 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 sozinho.
Pré-requisitos
Uma assinatura do Azure - crie uma gratuitamente.
Java Development Kit (JDK) versão 17 ou superior.
Apache Maven, versão 3.0 ou superior.
cURL ou um utilitário HTTP semelhante para testar a funcionalidade.
Uma instância de cache Redis. Se você não tiver um, consulte Guia de início rápido: criar um cache Redis de código aberto.
Um aplicativo Spring Boot. Se não tiveres um, cria um projeto Maven utilizando o Spring Initializr. Certifique-se de selecionar Maven Project e, em Dependências, adicione as dependências Spring Web e Spring Data Reactive Redis, e, em seguida, selecione a versão 8 do Java ou superior.
Armazenamento de Dados em Cache no Azure Cache para Redis
Com uma instância do 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 seu 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>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.19.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Observação
Esta lista de materiais (BOM) deve ser configurada na seção <dependencyManagement>
do seu arquivo pom.xml. Essa configuração garante que todas as dependências do Spring Cloud Azure estejam usando 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 utilizar?.
Codifique o aplicativo
Para usar um cache Redis para armazenar e recuperar dados, configure o aplicativo usando as seguintes etapas:
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
Observação
Para obter o valor para
username
, siga as instruções na secção Ativar a autenticação do Microsoft Entra ID no seu cache da Utilizar o Microsoft Entra ID para a autenticação de cachee copie o valor do nome de utilizador .Edite o arquivo de classe de inicialização para mostrar o seguinte conteúdo. 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 exemplo a seguir:
Add a key is done
Return the value from the cache: Hello World
Implantar no Azure Spring Apps
Agora que você tem o aplicativo Spring Boot em execução localmente, é hora de movê-lo para a produção. do Azure Spring Apps facilita a implantação de aplicativos Spring Boot no Azure sem alterações de código. O serviço gerencia a infraestrutura dos aplicativos Spring para que os desenvolvedores possam se concentrar em seu código. O Azure Spring Apps fornece gerenciamento do ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviços, integração de CI/CD, implantações azul-verde e muito mais. Para implantar seu aplicativo no Azure Spring Apps, consulte Implantar seu primeiro aplicativo no Azure Spring Apps.
Próximos passos
Para saber mais sobre o Spring e o Azure, continue para o centro de documentação do Spring on Azure.