Partilhar via


Guia de início rápido: usar o Cache Redis do Azure em Java com o cliente Jedis Redis

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

Saltar para o código no GitHub

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

Pré-requisitos

Criar uma instância do Azure Managed Redis

  1. Para criar uma instância do Azure Managed Redis, entre no portal do Azure e selecione Criar um recurso.

  2. Na página Criar um recurso , escreva Azure Managed Redis na caixa de pesquisa.

  3. Selecione o mosaico Azure Managed Redis e selecione Criar.

  4. No painel Criar instância Azure Managed Redis, configure as definições para uma nova cache no separador Basics.

    Configurações Escolher um valor Descrição
    Subscrição Desça e selecione a sua subscrição. 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 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.
    Região Desça e selecione uma localização. O Azure Managed Redis está disponível em regiões selecionadas do Azure.
    Camada de dados Selecione In-memory para alto desempenho ou Flash para caches de baixo desempenho As camadas na memória incluem Balanced, Memory Optimized e Compute Optimized. Use a camada Flash para usar o armazenamento de dados na memória (RAM) e no disco (SSD).
    Tamanho do cache Desça e selecione um tamanho. O tamanho do cache depende da camada. O menor tamanho é um nível Balanceado. A maior camada em memória é uma camada otimizada para memória.
    Desempenho Abaixe o menu suspenso e selecione uma opção de desempenho. O desempenho depende do número de vCPUs. O número de vCPU varia de acordo com a camada. Compute Optimized tem o maior número de vCPUs.

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

    Importante

    Todos os níveis em memória que utilizam mais de 235 GB de armazenamento estão em Visualização Pública, incluindo Otimizado para Memória M350 e superiores; Balanceado B350 e superiores; e Otimizado para Computação X350 e superiores. Todos esses níveis e superiores estão em Visualização Pública.

    Todos os níveis otimizados para Flash estão em Visualização pública.

  5. Selecione Próximo: Rede , e selecione Desativar acesso público e usar acesso privado ou Ativar acesso público a partir de todas as redes.

  6. Selecione Next: Replicação geográfica ativa. Para usar a replicação geográfica ativa, ela deve ser habilitada durante o provisionamento. Os caches sem replicação geográfica ativa não podem ser adicionados ou ingressar em grupos de replicação geográfica ativa posteriormente. Para obter mais informações, consulte Configurar a replicação geográfica ativa para instâncias do Azure Managed Redis.

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

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

    Definir política de agrupamento

    • Utilize o Enterprise para poder utilizar o RedisSearch ou outros módulos
    • Utilize OSS para um cache distribuído.
    • Use Não agrupado (Visualização) para um cache não agrupado.

    Para obter mais informações sobre como escolher a política de clustering, consulte Política de cluster.

    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

    Não é possível alterar módulos depois de criar uma instância de cache. Os módulos devem estar ativados no momento em que cria uma instância Azure Managed Redis. Não há nenhuma opção para habilitar a configuração de um módulo depois de criar um cache.

    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.

    Importante

    Não é possível alterar a política de clustering de uma instância do Azure Managed Redis 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.

  8. Selecione Next: Tags e skip.

  9. Selecione Seguinte: Revisar + criar.

  10. 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

  1. No portal do Azure, procure e selecione 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:

    • Subscrição: selecione a subscrição que pretende utilizar.
    • 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 seu aplicativo no mesmo grupo de recursos permite que você os gerencie ou exclua facilmente juntos.
    • Nome: insira um nome de cache exclusivo na região. O nome deve:
      • Ser uma sequência de 1 a 63 caracteres.
      • Contêm apenas números, letras e hífenes.
      • Comece e termine com um número ou letra.
      • Não conter hífenes consecutivas.
    • Região: selecione uma região do Azure perto de outros serviços que usam seu cache.
    • SKU de cache: selecione uma SKU para determinar os tamanhos, o desempenho e os recursos disponíveis para seu 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. Private Endpoint é 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 de Chaves de Acesso. A Autenticação do Microsoft Entra está habilitada por padrão.
    • Escolha se deseja Ativar a porta não-TLS.
    • Para um cache Premium, você pode configurar ou desabilitar zonas de disponibilidade. Não é possível desativar as zonas de disponibilidade após a criação do cache. Para um cache padrão, as zonas de disponibilidade são alocadas automaticamente. As zonas de disponibilidade não estão disponíveis para o Basic SKU.
    • Para um cache Premium, defina as configurações para contagem de réplicas, contagem de clusters e estilhaços, identidade gerenciada atribuída ao sistema e persistência de dados.

    A imagem a seguir mostra a aba Avançado para a SKU Standard.

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

    Importante

    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 a identidade gerenciada fornece melhor segurança e é mais fácil de usar do que a autorização de chave de acesso compartilhada. 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 Tags ou selecione Next: Tags, e insira nomes e valores de tags para categorizar seus recursos de cache.

  9. Selecione Rever + criar e, quando 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 Cache do Azure para Redis do portal. Quando o status do cache é exibido 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.

    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 Teclas de acesso.

    Captura de ecrã a mostrar 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.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=6380

Substitua os marcadores de posição 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.

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

  • <your-client-id>: O ID da aplicação (cliente) do seu registo de aplicação do Azure AD.

  • <your-client-secret>: O segredo de cliente do seu registo de aplicação do Azure AD.

  • <your-tenant-id>: Sua ID de inquilino do Azure Active Directory.

    Observação

    O exemplo acima usa a autenticação de segredo do cliente. Você também pode configurar a redis-authx-entraid biblioteca para usar outros métodos de autenticação, como identidade gerenciada ou certificado de cliente, modificando a EntraIDTokenAuthConfigBuilder configuração em seu código.


Criar uma nova aplicação 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. Mude para o novo diretório do projeto redis-jedis-test .

  3. Abra o arquivo pom.xml . No arquivo, você vê uma dependência para Jedis:

    Observação

    A Microsoft firmou uma parceria com a Redis, Inc. Como parte dessa colaboração, o suporte à autenticação do Microsoft Entra ID foi movido do SDK do Azure para as extensões do Redis Entra ID. A nova redis-authx-entraid biblioteca fornece recursos de autenticação aprimorados e é a abordagem recomendada para a autenticação do Microsoft Entra ID com o Cache do Azure para Redis.

    <dependency>
        <groupId>redis.clients.authentication</groupId>
        <artifactId>redis-authx-entraid</artifactId>
        <version>0.1.1-beta2</version>
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>6.0.0</version> 
    </dependency>
    
  4. Feche o arquivo pom.xml .

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

    package example.demo;
    
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import redis.clients.authentication.core.TokenAuthConfig;
    import redis.clients.authentication.entraid.AzureTokenAuthConfigBuilder;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.UnifiedJedis;
    import redis.clients.jedis.authentication.AuthXManager;
    
    import java.util.Set;
    
    /**
    * Redis test with Microsoft Entra ID authentication using redis-authx-entraid
    * For more information about Redis authentication extensions, see:
    * https://redis.io/docs/latest/develop/clients/jedis/amr/
    *
    */
    public class App
    {
        public static void main( String[] args )
        {
            String REDIS_CACHE_HOSTNAME = System.getenv("REDIS_CACHE_HOSTNAME");
            int REDIS_PORT = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "10000"));
            String SCOPES = "https://redis.azure.com/.default"; // The scope for Azure Cache for Redis
    
            // Build TokenAuthConfig for Microsoft Entra ID authentication
            TokenAuthConfig tokenAuthConfig = AzureTokenAuthConfigBuilder.builder()
                    .defaultAzureCredential(new DefaultAzureCredentialBuilder().build())
                    .scopes(Set.of(SCOPES))
                    .tokenRequestExecTimeoutInMs(2000)
                    .build();
    
            DefaultJedisClientConfig config = DefaultJedisClientConfig.builder()
                    .authXManager(new AuthXManager(tokenAuthConfig))
                    .ssl(true)
                    .build();
    
            UnifiedJedis jedis = new UnifiedJedis(
                    new HostAndPort(REDIS_CACHE_HOSTNAME, REDIS_PORT),
                    config);
    
            // Test the connection
            System.out.println(String.format("Database size is %d", jedis.dbSize()));
    
            // 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"));
    
            jedis.close();
        }
    }
    

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

  6. Feche o arquivo App.java .

Criar e executar o aplicativo

Execute o seguinte comando Maven para criar e executar a aplicação:

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

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

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!

Limpeza de 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. Certifique-se de que não elimina acidentalmente grupos 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.

  1. Inicie sessão 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 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.

    Captura de ecrã do portal do Azure que mostra a página Grupo de recursos com o botão Eliminar 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 no mesmo são eliminados.

Próximos passos

Neste guia de início rápido, você aprendeu a usar o Cache Redis do Azure a partir de um aplicativo Java. Continue para o próximo início rápido para usar o Cache Redis do Azure com um aplicativo Web ASP.NET.