Guia de início rápido: usar o Cache Redis do Azure em Java com o cliente Redisson Redis
Neste início rápido, você incorpora o Cache Redis do Azure em um aplicativo Java usando o cliente Redisson Redis e a API JCache padrão JCP. Esses serviços oferecem acesso a um cache seguro e dedicado que pode ser acessado a partir de qualquer aplicativo no Azure. Este artigo fornece duas opções para selecionar a identidade do Azure a ser usada para a conexão Redis.
Saltar para o código no GitHub
Este guia de início rápido usa o recurso de arquétipo Maven para gerar o andaime para o aplicativo. O início rápido direciona você a modificar o código gerado para chegar ao aplicativo de exemplo de trabalho. Se você quiser pular diretamente para o código concluído, consulte o início rápido do Java no GitHub.
Pré-requisitos
- Subscrição do Azure - crie uma gratuitamente
- Usar o Microsoft Entra ID para autenticação de cache
- Apache Maven
Criar uma instância do Azure Managed Redis (visualização)
Para criar uma instância do Azure Managed Redis (visualização), entre no portal do Azure e selecione Criar um recurso.
Na página Novo, na caixa de pesquisa, digite Cache do Azure para Redis.
Na página Novo Cache Redis, defina as configurações para o novo cache.
Definição Escolher um valor Description Subscrição Drop-down e selecione sua assinatura. A assinatura sob a qual criar essa nova instância do Azure Managed Redis. Grupo de recursos Drop-down e selecione um grupo de recursos, ou selecione Criar novo e insira um novo nome de grupo de recursos. Nome do grupo de recursos no qual criar o cache e outros recursos. Ao colocar todos os recursos do seu aplicativo em um grupo de recursos, você pode facilmente gerenciá-los ou excluí-los juntos. Nome DNS Insira um nome exclusivo na região. O nome do cache deve ser uma cadeia de caracteres entre 1 e 63 caracteres quando combinado com o nome da região do cache que contém apenas números, letras ou hífenes. (Se o nome do cache tiver menos de 45 caracteres, ele deverá funcionar em todas as regiões atualmente disponíveis.) O nome deve começar e terminar com um número ou letra e não pode conter hífenes consecutivos. O nome de host da instância de cache é \<DNS name\>.\<Azure region\>.redis.azure.net
.Location Drop-down e selecione um local. O Azure Managed Redis está disponível em regiões selecionadas do Azure. Tipo de cache Faça uma lista suspensa e selecione a camada de desempenho e o tamanho do cache. A camada determina o desempenho da instância do Redis, enquanto o tamanho do cache determina a memória disponível para armazenar dados. Para obter orientação sobre como escolher a camada de desempenho correta, consulte Escolhendo a camada certa Selecione Next: Networking e selecione um ponto de extremidade público ou privado.
Selecione Next: Avançado.
Configure todos os módulos Redis que você deseja adicionar à instância.
Por padrão, para um novo cache gerenciado:
- O Microsoft Entra ID está habilitado.
- A Autenticação de Chaves de Acesso está desativada por motivos de segurança.
Importante
Para uma segurança ideal, recomendamos que você use o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando o ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhado. Para obter mais informações sobre como usar identidades gerenciadas com seu cache, consulte Usar a ID do Microsoft Entra para autenticação de cache.
Defina a política de Clustering como Enterprise para um cache não clusterizado ou como OSS para um cache clusterizado. Para obter mais informações sobre como escolher a política de clustering, consulte Política de cluster.
Se você estiver usando a replicação geográfica ativa, ela deverá ser configurada durante a criação. Para obter mais informações, consulte Configurar a replicação geográfica ativa para instâncias do Azure Managed Redis.
Importante
Não é possível alterar a política de clustering de uma instância do Azure Managed Redis (visualização) depois de criá-la. Se você estiver usando o RediSearch, a política de cluster Enterprise será necessária e
NoEviction
será a única política de remoção suportada.Importante
Se você estiver usando essa instância de cache em um grupo de replicação geográfica, as políticas de remoção não poderão ser alteradas após a criação da instância. Certifique-se de conhecer as políticas de remoção de seus nós principais antes de criar o cache. Para obter mais informações sobre replicação geográfica ativa, consulte Pré-requisitos de replicação geográfica ativa.
Importante
Não é possível alterar módulos depois de criar uma instância de cache. Os módulos devem ser habilitados no momento em que você cria uma instância do Cache do Azure para Redis. Não há nenhuma opção para habilitar a configuração de um módulo depois de criar um cache.
Selecione Next: Tags e skip.
Selecione Seguinte: Rever + criar.
Revise as configurações e selecione Criar.
Leva vários minutos para a instância do Redis ser criada. Você pode monitorar o progresso na página Visão Geral do Redis Gerenciado do Azure. Quando Status é exibido como Em execução, o cache está pronto para uso.
Criar uma instância do Cache do Azure para Redis
Para criar um cache, entre no portal do Azure. No menu do portal, selecione Criar um recurso.
No painel Introdução, insira Cache Redis do Azure na barra de pesquisa. Nos resultados da pesquisa, localize o Cache do Azure para Redis e selecione Criar.
No painel Novo Cache Redis, na guia Noções básicas, defina as seguintes configurações para o cache:
Definição Ação Descrição Subscrição Selecione a subscrição do Azure. A assinatura a ser usada para criar a nova instância do Cache do Azure para Redis. Grupo de recursos Selecione um grupo de recursos ou selecione Criar novo e insira um novo nome de grupo de recursos. Um nome para o grupo de recursos no qual criar seu cache e outros recursos. Ao colocar todos os recursos do seu aplicativo em um grupo de recursos, você pode facilmente gerenciá-los ou excluí-los juntos. Nome DNS Introduza um nome exclusivo. O nome do cache deve ser uma cadeia de caracteres de 1 a 63 caracteres que contenha apenas números, letras e hífenes. O nome deve começar e terminar com um número ou letra, e não pode conter hífenes consecutivas. O nome de host da instância de cache é \<DNS name>.redis.cache.windows.net
.Location Selecione uma localização. Uma região do Azure que está perto de outros serviços que usam seu cache. Cache SKU Selecione uma SKU. A SKU determina o tamanho, o desempenho e os parâmetros de recurso disponíveis para o cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis. Tamanho do cache Selecione um tamanho de cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis. Selecione a guia Rede ou selecione Avançar: Rede.
Na guia Rede, selecione um método de conectividade a ser usado para o cache.
Selecione a guia Avançado ou selecione Avançar: Avançado.
No painel Avançado, verifique ou selecione um método de autenticação com base nas seguintes informações:
- Por padrão, para um novo cache Básico, Standard ou Premium, a Autenticação do Microsoft Entra está habilitada e a Autenticação de Chaves de Acesso está desabilitada.
- Para caches Basic ou Standard, você pode escolher a seleção para uma porta não-TLS.
- Para caches Standard e Premium, você pode optar por habilitar zonas de disponibilidade. Não é possível desativar as zonas de disponibilidade após a criação do cache.
- Para um cache Premium, defina as configurações para porta não-TLS, clustering, identidade gerenciada e persistência de dados.
Importante
Para uma segurança ideal, recomendamos que você use o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando o ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhado. Para obter mais informações sobre como usar identidades gerenciadas com seu cache, consulte Usar a ID do Microsoft Entra para autenticação de cache.
(Opcional) Selecione a guia Tags ou selecione Next: Tags.
(Opcional) Na guia Marcas , insira um nome e um valor de tag se quiser categorizar seu recurso de cache.
Selecione o botão Rever + criar.
Na guia Revisão + criação, o Azure valida automaticamente sua configuração.
Depois que a mensagem verde Validação passada for exibida, selecione Criar.
Uma nova implantação de cache ocorre ao longo de vários minutos. Você pode monitorar o progresso da implantação no painel Visão Geral do Cache do Azure para Redis. Quando Status exibe Em execução, o cache está pronto para uso.
Recuperar nome de host, portas e chaves de acesso do portal do Azure
Para conectar seu servidor Cache do Azure para Redis, o cliente de cache precisa do nome do host, das portas e de uma chave para o cache. Alguns clientes podem mencionar esses itens com nomes ligeiramente diferentes. Você pode obter o nome do host, as portas e as chaves no portal do Azure.
Para obter o nome do host e as portas do cache, selecione Visão geral no menu Recurso . O nome do host é do formato
<DNS name>.redis.cache.windows.net
.Para obter as chaves de acesso, selecione Autenticação no menu Recurso . Em seguida, selecione a guia Teclas de acesso.
Configurar o ambiente de trabalho
As etapas a seguir mostram como configurar o ambiente de trabalho para o aplicativo Java. Você pode optar por autenticar com o Cache Redis do Azure usando a ID do Microsoft Entra (recomendado) ou chaves de acesso.
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=6380
Substitua os espaços reservados pelos seguintes valores:
<your-host-name>
: O nome do host DNS. Para obter o nome do host e as portas do cache, selecione Visão geral no menu Recurso . O nome do host é do formato<DNS name>.redis.cache.windows.net
.<user-name>
: ID do objeto da sua identidade gerenciada ou entidade de serviço.Você pode obter o nome de usuário usando as seguintes etapas:
Criar uma nova aplicação Java
Use o Maven para gerar um novo aplicativo de início rápido:
mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DarchetypeVersion=1.3 \ -DinteractiveMode=false \ -DgroupId=example.demo \ -DartifactId=redis-redisson-test \ -Dversion=1.0
Mude para o novo diretório do projeto redis-redisson-test .
Abra o arquivo pom.xml e adicione uma dependência para Redisson:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.0</version> <!-- {x-version-update;com.azure:azure-identity;dependency} --> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.36.0</version> <!-- {x-version-update;org.redisson:redisson;external_dependency} --> </dependency>
Guarde o ficheiro pom.xml.
Abra App.java e substitua o código pelo seguinte código:
package example.demo; import com.azure.core.credential.TokenRequestContext; import com.azure.identity.DefaultAzureCredential; import com.azure.identity.DefaultAzureCredentialBuilder; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.redisson.jcache.configuration.RedissonConfiguration; import javax.cache.Cache; import javax.cache.CacheManager; import javax.cache.Caching; import javax.cache.configuration.Configuration; import javax.cache.configuration.MutableConfiguration; import java.time.LocalDateTime; /** * Redis test * */ public class App { public static void main(String[] args) { Config redissonconfig = getConfig(); RedissonClient redissonClient = Redisson.create(redissonconfig); MutableConfiguration<String, String> jcacheConfig = new MutableConfiguration<>(); Configuration<String, String> config = RedissonConfiguration.fromInstance(redissonClient, jcacheConfig); // Perform cache operations using JCache CacheManager manager = Caching.getCachingProvider().getCacheManager(); Cache<String, String> map = manager.createCache("test", config); // Simple get and put of string data into the cache System.out.println("\nCache Command : GET Message"); System.out.println("Cache Response : " + map.get("Message")); System.out.println("\nCache Command : SET Message"); map.put("Message", String.format("Hello! The cache is working from Java! %s", LocalDateTime.now())); // Demonstrate "SET Message" executed as expected System.out.println("\nCache Command : GET Message"); System.out.println("Cache Response : " + map.get("Message")); redissonClient.shutdown(); } private static Config getConfig() { //Construct a Token Credential from Identity library, e.g. DefaultAzureCredential / ClientSecretCredential / Client CertificateCredential / ManagedIdentityCredential etc. DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder().build(); // Fetch a Microsoft Entra token to be used for authentication. String token = defaultAzureCredential .getToken(new TokenRequestContext() .addScopes("https://redis.azure.com/.default")).block().getToken(); // Connect to the Azure Cache for Redis over the TLS/SSL port using the key Config redissonconfig = new Config(); redissonconfig.useSingleServer() .setAddress(String.format("rediss://%s:%s", System.getenv("REDIS_CACHE_HOSTNAME"), System.getenv("REDIS_CACHE_PORT"))) .setUsername(System.getenv("USER_NAME")) // (Required) Username is Object ID of your managed identity or service principal .setPassword(token); // Microsoft Entra access token as password is required. return redissonconfig; } }
Save App.java.
Compilar e executar a aplicação
Execute o seguinte comando Maven para criar e executar a aplicação:
mvn compile exec:java -Dexec.mainClass=example.demo.App
Na saída a seguir, você pode ver que a Message
chave anteriormente tinha um valor armazenado em cache, que foi definido na última execução. A aplicação atualizou esse valor em cache.
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:13:11.398873
Cache Command : SET Message
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:45:45.748667
Clean up resources (Limpar recursos)
Se você planeja continuar com o próximo tutorial, você pode manter os recursos criados neste início rápido e reutilizá-los.
Caso contrário, se tiver terminado o aplicativo de exemplo de início rápido, você poderá excluir os recursos do Azure criados neste início rápido para evitar cobranças.
Importante
A eliminação de um grupo de recursos é irreversível e o grupo de recursos e todos os recursos contidos no mesmo serão permanentemente eliminados. Confirme que não elimina acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos para hospedar este exemplo dentro de um grupo de recursos existente que contém recursos que você deseja manter, você pode excluir cada recurso individualmente em vez de excluir o grupo de recursos.
Inicie sessão no Portal do Azure e selecione Grupos de recursos.
Na caixa de texto Filtrar por nome, digite o nome do seu grupo de recursos. As instruções para este artigo usaram um grupo de recursos chamado
TestResources
. No seu grupo de recursos na lista de resultados, selecione Testar Recursos e, em seguida , Excluir grupo de recursos.Digite o nome do grupo de recursos para confirmar a exclusão e selecione Excluir.
Após alguns instantes, o grupo de recursos e todos os recursos contidos no mesmo são eliminados.
Próximos passos
Neste início rápido, você aprendeu a usar o Cache Redis do Azure a partir de um aplicativo Java com o cliente Redisson Redis e o JCache. Continue para o próximo início rápido para usar o Cache Redis do Azure com um aplicativo Web ASP.NET.