Compartilhar via


Início Rápido: usar o Cache do Azure para Redis no Java com o cliente Redisson Redis

Neste início rápido, você incorporará o Cache do Azure para Redis em um aplicativo Java usando o cliente Redisson Redis e a API JCache padrão JCP. Esses serviços fornecem acesso a um cache seguro e dedicado que pode ser acessado 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.

Pular para o código no GitHub

Este início rápido usa o recurso de arquétipo do Maven para gerar o scaffolding para o aplicativo. O início rápido o orienta 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

Criar uma instância do Redis Gerenciado do Azure (versão prévia)

  1. Para criar uma instância do Redis Gerenciado do Azure (versão prévia), entre no portal do Azure e selecione Criar um recurso.

  2. Na página Novo, digite Cache do Azure para Redis na caixa de pesquisa.

  3. Na página Novo Cache Redis, defina as configurações para o novo cache.

    Configuração Escolher um valor Descrição
    Assinatura Clique na lista suspensa e selecione sua assinatura. A assinatura sob a qual essa nova instância do Redis Gerenciado do Azure será criada.
    Grupo de recursos Clique na lista suspensa e selecione um grupo de recursos ou selecione Criar e insira um novo nome de grupo de recursos. Nome do grupo de recursos no qual o cache e outros recursos serão criados. Ao colocar todos os seus recursos de aplicativos em um só grupo de recursos, você pode gerenciá-los ou excluí-los juntos com facilidade.
    Nome DNS Insira um nome que seja exclusivo na região. O nome do cache deve conter de 1 a 63 caracteres quando combinado com o nome da região do cache que contém apenas números, letras ou hifens. (Se o nome do cache tiver menos de 45 caracteres, ele deverá funcionar em todas as regiões disponíveis no momento.) O nome precisa começar e terminar com um número ou uma letra e não pode conter hifens consecutivos. O nome do host da instância de cache é \<DNS name\>.\<Azure region\>.redis.azure.net.
    Localidade Clique na lista suspensa e selecione uma localização. O Redis Gerenciado do Azure está disponível em regiões selecionadas do Azure.
    Tipo de cache Selecione o nível de desempenho e o tamanho do cache no menu suspenso. O nível determina o desempenho da instância do Redis, enquanto o tamanho do cache determina a memória disponível para armazenar os dados. Para obter orientação sobre como escolher o nível de desempenho adequado, consulte Escolher o nível correto

    Captura de tela mostrando a guia Noções básicas do Redis Gerenciado do Azure.

  4. Selecione Avançar: Rede e selecione um ponto de extremidade privado ou público.

  5. Selecione Próximo: Avançado.

    Configure os módulos do Redis que você deseja adicionar à instância.

    Por padrão, para um cache gerenciado novo:

    • O Microsoft Entra ID está habilitado.
    • Autenticação de Chaves de Acesso está desabilitada por motivos de segurança.

    Importante

    Para otimizar a segurança, recomendamos usar o Microsoft Entra ID com identidades gerenciadas a fim de autorizar solicitações no cache, se possível. A autorização usando o Microsoft Entra ID e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhada. Para saber como usar as identidades gerenciadas com o cache, confira Usar o Microsoft Entra ID para autenticação de cache.

    Defina a política de clustering como Enterprise para um cache não clusterizado ou para o OSS para um cache clusterizado. Para obter mais informações sobre como escolher Política de cluster, veja Política de cluster.

    Captura de tela que mostra a guia Avançado do Redis gerenciado do Azure.

    Se você estiver usando Replicação geográfica ativa, ela deverá ser configurada durante a criação. Para obter mais informações, confira Configurar a replicação geográfica ativa para instâncias do Azure Managed Redis.

    Importante

    Não é possível alterar a política de cluster de uma instância do Redis gerenciado do Azure (versão prévia) depois de criá-la. Caso esteja usando o RediSearch, a política de cluster do Enterprise será necessária e NoEviction será a única política de remoção com suporte.

    Importante

    Caso esteja 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. Lembre-se saber sobre as políticas de remoção dos nós primários antes de criar o cache. Para saber mais sobre a replicação geográfica ativa, confira Pré-requisitos da 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ê criar uma instância de 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.

  6. Selecione Avançar: Marcas e ignore.

  7. Selecione Avançar: Revisar + criar.

  8. Examine as configurações e selecione Criar.

    A criação da instância do Redis leva vários minutos. O progresso pode ser monitorado na página Visão geral do Redis gerenciado do Azure. Quando o Status for mostrado como Em execução, o cache estará pronto para uso.

Criar uma instância de Cache do Azure para Redis

  1. Para criar um cache, entre no portal do Azure. No menu do portal, selecione Criar recurso.

    Captura de tela que mostra a opção Criar recurso realçada no painel de navegação esquerdo no portal do Azure.

  2. Na página Introdução, insira Cache do Azure para Redis na barra de pesquisa. Nos resultados da pesquisa, localize Cache do Azure para Redis e selecione Criar.

    Captura de tela que mostra o Azure Marketplace com o Cache do Azure para Redis na caixa de pesquisa e o botão

  3. No painel Novo Cache Redis, na guia Básico, defina as seguintes configurações para o cache:

    Configuração Ação Descrição
    Assinatura Selecione sua assinatura do Azure. A assinatura a ser usada para criar a 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 em que você criará o cache e outros recursos. Ao colocar todos os seus recursos de aplicativos em um só grupo de recursos, você pode gerenciá-los ou excluí-los juntos com facilidade.
    Nome DNS Insira um nome exclusivo. O nome do cache precisa ser uma cadeia de caracteres com 1 a 63 caracteres contendo somente números, letras e hifens. O nome deve começar e terminar com um número ou uma letra e não pode conter hifens consecutivos. O nome do host da instância de cache é \<DNS name>.redis.cache.windows.net.
    Localidade Selecione uma localização. Uma região do Azure que esteja próxima a outros serviços que usam o cache.
    Cache SKU Selecione um SKU. O SKU determina os parâmetros de tamanho, desempenho e 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.
  4. Selecione a guia Rede ou clique em Avançar: rede.

  5. Na guia Rede, selecione um método de conectividade a ser usado para o cache.

  6. Selecione a guia Avançado ou clique em Avançar: avançado.

  7. No painel Avançado, verifique ou selecione um método de autenticação com base nas seguintes informações:

    Captura de tela que mostra o painel Avançado e as opções disponíveis para seleção.

    • 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 Básico ou Standard, é possível escolher a seleção de uma porta não TLS.
    • Para caches Standard e Premium, é possível optar por habilitar zonas de disponibilidade. Não é possível desabilitar 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 otimizar a segurança, recomendamos usar o Microsoft Entra ID com identidades gerenciadas a fim de autorizar solicitações no cache, se possível. A autorização usando o Microsoft Entra ID e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhada. Para saber como usar as identidades gerenciadas com o cache, confira Usar o Microsoft Entra ID para autenticação de cache.

  8. (Opcional) Selecione a guia Categorias ou clique em Avançar: categorias.

  9. (Opcional) Na guia Categorias, insira um nome e um valor de categoria se você quiser categorizar o recurso de cache.

  10. Selecione o botão Revisar + criar.

    Na guia Examinar + criar, o Azure valida a configuração automaticamente.

  11. Depois que a mensagem em verde Validação aprovada for exibida, selecione Criar.

Uma nova implantação de cache ocorre durante diversos minutos. Você pode monitorar o progresso da implantação no painel Visão Geral do Cache do Azure para Redis. Quando o Status mostrar Em execução, o cache estará pronto para uso.

Recuperar o nome de host, as portas e as chaves de acesso do portal do Azure

Para conectar seu servidor do 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 se referir a esses itens por nomes um pouco diferentes. Você pode obter o nome do host, as portas e as chaves do 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 está no formato <DNS name>.redis.cache.windows.net.

    Captura de tela mostrando as propriedades do Cache do Azure para Redis.

  • Para obter as chaves de acesso, selecione Autenticação no menu Recurso. Em seguida, selecione a guia Chaves de acesso.

    Captura de tela mostrando as chaves de acesso do Cache do Azure para Redis.

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 do Azure para Redis usando a ID do Microsoft Entra (recomendada) ou as 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 está no formato <DNS name>.redis.cache.windows.net.

    Captura de tela mostrando as propriedades do Cache do Azure para Redis.

  • <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:

    1. No portal do Azure, navegue até a instância do Cache do Azure para Redis.

    2. No painel de navegação, selecione Configuração de Acesso a Dados.

    3. Na guia Usuários do Redis, localize a coluna Nome de usuário.

      Captura de tela do portal do Azure que mostra a página Configuração de Acesso a Dados do Cache do Azure para Redis com a guia Usuários redis e um valor de nome de usuário realçado.

Criar um novo aplicativo Java

  1. 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
    
  2. Altere para o novo diretório do projeto redis-redisson-test.

  3. 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>
    
  4. Salve o arquivo pom.xml .

  5. Abra App.java e substitua o código pelo código a seguir:

    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;
        }
    }
    
    
  6. Salve App.java.

Compilar e executar o aplicativo

Execute o seguinte comando do Maven para compilar e executar o aplicativo:

mvn compile exec:java -Dexec.mainClass=example.demo.App

Na saída a seguir, você pode ver que a chave Message anteriormente tinha um valor armazenado em cache, que foi definido na última execução. O aplicativo atualizou esse valor armazenado 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

Limpar os recursos

Se você planeja continuar com o próximo tutorial, poderá manter os recursos criados neste início rápido e reusá-los.

Caso contrário, se você não for mais usar o aplicativo de exemplo do início rápido, exclua os recursos do Azure criados neste início rápido para evitar encargos.

Importante

A exclusão de um grupo de recursos é irreversível, e o grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente o grupo de recursos ou os recursos incorretos. Se você criou os recursos para hospedar esse exemplo dentro de um grupo de recursos existente que contém os recursos que você deseja manter, você pode excluir cada recurso individualmente em vez de excluir o grupo de recursos.

  1. Entre no portal do Azure e selecione Grupos de recursos.

  2. Na caixa de texto Filtrar por nome, digite o nome do seu grupo de recursos. As instruções deste artigo usaram um grupo de recursos chamado TestResources. No seu grupo de recursos na lista de resultados, selecione Testar Recursos e Excluir grupo de recursos.

    Captura de tela do portal do Azure que mostra a página Grupo de recursos com o botão Excluir grupo de recursos realçado.

  3. 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 nele, serão excluídos.

Próximas etapas

Neste início rápido, você aprendeu a usar o Cache do Azure para Redis em um aplicativo Java com o cliente Redisson Redis e o JCache. Continue para o próximo início rápido usar o Cache do Azure para Redis com um aplicativo Web ASP.NET.