Compartilhar via


Início Rápido: Usar o Cache do Azure para Redis em Java com o cliente Jedis Redis

Neste início rápido, você incorpora o Cache do Azure para Redis no aplicativo Java usando o cliente Jedis do Redis. Seu cache é um cache seguro e dedicado que pode ser acessado de qualquer aplicativo no Azure.

Pular para o código no GitHub

Clone o início rápido do Java de repositório no GitHub.

Pré-requisitos

Criar uma instância do Redis Gerenciado pelo Azure

  1. Para criar uma instância do Redis Gerenciado do Azure, 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 guia Novo Cache Redis, configure as definições do novo cache em Configurações Básicas.

    Configurações Escolher um valor Descrição
    Subscrição 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 ao mesmo tempo com facilidade.
    Nome 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.
    Região Clique na lista suspensa e selecione uma localização. O Redis Gerenciado do Azure está disponível em regiões selecionadas do Azure.
    Camada de dados Selecione Na memória para alto desempenho ou Flash para caches de desempenho mais baixo As camadas na memória incluem Balanceamento, Otimização de Memória e Otimização de Computação. Use a camada Flash para usar o armazenamento de dados na memória (RAM) e no disco (SSD).
    Tamanho do cache Solte e selecione um tamanho. O tamanho do cache depende da camada. O menor tamanho é uma camada Balanceada. O tamanho da maior camada na memória é uma camada Otimizada para Memória.
    Desempenho Solte e selecione uma preferência de desempenho. O desempenho depende do número de vCPUs. O número de vCPU varia de acordo com a camada. A Computação Otimizada tem a maioria das vCPUs.

    Para obter orientação sobre como escolher a camada de desempenho certa, consulte Escolhendo a camada certa.

    Importante

    Todas as camadas na memória que usam mais de 120 GB de armazenamento estão em Visualização Pública, incluindo M150 otimizado para memória e superior; B150 balanceado e superior; e Computação Otimizada X150 e superior. Todas essas camadas e superiores estão na Visualização Pública.

    Todas as camadas otimizadas para Flash estão na Visualização Pública.

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

  5. Selecione Avançar: Replicação geográfica ativa. Para usar a replicação geográfica ativa, ela deve ser habilitada durante o provisionamento. Caches sem replicação geográfica ativa não podem ser adicionados ou ingressados em grupos ativos de replicação geográfica posteriormente. Para obter mais informações, confira Configurar a replicação geográfica ativa para instâncias do Azure Managed Redis.

  6. Selecione a guia Avançar: Avançado .

    Configure todos os módulos 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 a ID do Microsoft Entra e identidades gerenciadas fornece segurança superior e facilidade de uso sobre a 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.

    Definir a política de clustering:

    • Usar o Enterprise para usar o RedisSearch ou outros módulos
    • Use OSS para um cache em cluster.
    • Use Non-clustered (Versão Prévia) para um cache não clusterizado.

    Para obter mais informações sobre como escolher Política de cluster, veja Política de cluster.

    Importante

    Você não pode alterar a política de clustering de uma instância do Azure Managed Redis 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.

  7. Selecione Avançar: Marcas e ignore.

  8. Selecione Avançar: Revisar + criar.

  9. 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. No portal do Azure, pesquise e selecione o Cache do Azure para Redis.

  2. Na página Cache do Azure para Redis , selecione Criar>Cache do Azure para Redis.

  3. Na guia Noções básicas da página Novo Cache Redis , defina as seguintes configurações:

    • Assinatura: selecione a assinatura a ser utilizada.
    • Grupo de recursos: selecione um grupo de recursos ou selecione Criar novo e insira um novo nome de grupo de recursos. Colocar todos os recursos do aplicativo no mesmo grupo de recursos permite que você os gerencie ou exclua facilmente.
    • Nome: insira um nome de cache exclusivo na região. O nome deve:
      • Seja uma cadeia de caracteres de 1 a 63 caracteres.
      • Contêm apenas números, letras e hifens.
      • Inicie e termine com um número ou uma letra.
      • Não deve conter hifens consecutivos.
    • Região: selecione uma região do Azure perto de outros serviços que usam seu cache.
    • SKU de cache: selecione um SKU para determinar os tamanhos, o desempenho e os recursos disponíveis para o cache.
    • Tamanho do cache: selecione um tamanho de cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis.

    Captura de tela que mostra a guia Noções básicas da página Novo Cache Redis.

  4. Selecione a guia Rede ou selecione Avançar: Rede.

  5. Na guia Rede, selecione um método de conectividade a ser usado para o cache. O Ponto de Extremidade Privado é recomendado para segurança. Se você selecionar ponto de extremidade privado, selecione Adicionar ponto de extremidade privado e crie o ponto de extremidade privado.

  6. Selecione a guia Avançado ou selecione Avançar: Avançado.

  7. No painel Avançado , configure as seguintes opções:

    • Selecione Autenticação do Microsoft Entra ou Autenticação por Chaves de Acesso. A Autenticação do Microsoft Entra está habilitada por padrão.
    • Escolha se deseja habilitar a porta não TLS.
    • Para um cache Premium, você pode configurar ou desabilitar zonas de disponibilidade. Não é possível desabilitar zonas de disponibilidade após a criação do cache. Para um cache Standard, as zonas de disponibilidade são alocadas automaticamente. As zonas de disponibilidade não estão disponíveis para o SKU Básico.
    • Para um cache Premium, defina as configurações para contagem de réplicas, clustering, contagem de fragmentos, identidade gerenciada atribuída pelo sistema e persistência de dados.

    A imagem a seguir mostra a aba Avançado do SKU Padrão.

    Captura de tela mostrando o painel Avançado para um cache de SKU Standard.

    Importante

    Use o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações no cache, se possível. A autorização usando a ID do Microsoft Entra e a identidade gerenciada fornece melhor segurança e é mais fácil de usar do que a 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.

  8. Opcionalmente, selecione a guia Marcas ou selecione Avançar: Marcas e insira nomes e valores de marca para categorizar os recursos de cache.

  9. Selecione Examinar + criar e, depois que a validação for aprovada, selecione Criar.

A nova implantação de cache leva vários minutos. Você pode monitorar o progresso da implantação na página portal do Cache do Azure para Redis. Quando o status do cache é exibido em execução, o cache está pronto para ser usado.

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 marcadores 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-jedis-test \
        -Dversion=1.0
    
  2. Altere para o novo diretório do projeto redis-jedis-test.

  3. Abra o arquivo pom.xml. No arquivo, você verá uma dependência do Jedis:

    <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>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>5.2.0</version> <!-- {x-version-update;redis.clients:jedis;external_dependency} -->
    </dependency>
    
  4. Feche o arquivo pom.xml.

  5. Abra App.java e veja o código com o código a seguir:

    package example.demo;
    
    import com.azure.identity.DefaultAzureCredential;
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import com.azure.core.credential.TokenRequestContext;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.Jedis;
    
    /**
     * Redis test
     *
     */
    public class App
    {
        public static void main( String[] args )
        {
    
            boolean useSsl = true;
    
            //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. This token will be used as the password.
                    String token = defaultAzureCredential
                            .getToken(new TokenRequestContext()
                                    .addScopes("https://redis.azure.com/.default")).block().getToken();
    
            String cacheHostname = System.getenv("REDIS_CACHE_HOSTNAME");
            String username = System.getenv("USER_NAME");
            int port = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "6380"));
    
            // Connect to the Azure Cache for Redis over the TLS/SSL port using the key.
            Jedis jedis = new Jedis(cacheHostname, port, DefaultJedisClientConfig.builder()
                    .password(token) // Microsoft Entra access token as password is required.
                    .user(username) // Username is Required
                    .ssl(useSsl) // SSL Connection is Required
                    .build());
            // Perform cache operations using the cache connection object...
    
            // Simple PING command
            System.out.println( "\nCache Command  : Ping" );
            System.out.println( "Cache Response : " + jedis.ping());
    
            // Simple get and put of integral data types into the cache
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            System.out.println( "\nCache Command  : SET Message" );
            System.out.println( "Cache Response : " + jedis.set("Message", "Hello! The cache is working from Java!"));
    
            // Demonstrate "SET Message" executed as expected...
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            // Get the client list, useful to see if connection list is growing...
            System.out.println( "\nCache Command  : CLIENT LIST" );
            System.out.println( "Cache Response : " + jedis.clientList());
    
            jedis.close();
        }
    }
    

    Este código mostra como se conectar a uma instância do Cache do Azure para Redis usando o nome de host de cache e as principais variáveis de ambiente. O código também armazena e recupera um valor de cadeia de caracteres no cache. Os comandos PING e CLIENT LIST também são executados.

  6. Feche o arquivo de App.java.

Compilar e executar o aplicativo

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

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

Na saída a seguir, você pode ver que a chave Message tinha previamente um valor em cache. O valor foi atualizado para um novo valor usando jedis.set. O aplicativo também executou os comandos PING e CLIENT LIST.

Cache Command  : Ping
Cache Response : PONG

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : SET Message
Cache Response : OK

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : CLIENT LIST
Cache Response : id=777430 addr=             :58989 fd=22 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 ow=0 owmem=0 events=r cmd=client numops=6

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. Certifique-se de que 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 guia de início rápido, você aprendeu a usar o Cache do Azure para Redis de um aplicativo Java. Continue para o próximo início rápido usar o Cache do Azure para Redis com um aplicativo Web ASP.NET.