Perguntas frequentes sobre desenvolvimento do Cache do Azure para Redis

Este artigo fornece respostas a perguntas comuns sobre como desenvolver o Cache do Azure para Redis.

Como começo a usar o Cache do Azure para Redis?

Há várias maneiras de começar a usar o Cache do Azure para Redis.

Se ainda não tiver uma conta do Azure, você poderá:

O que as opções de configuração do StackExchange.Redis fazem?

O StackExchange.Redis tem muitas opções. Esta seção fala sobre algumas das configurações comuns. Para obter mais informações sobre opções do StackExchange.Redis, consulte configuração do StackExchange.Redis.

ConfigurationOptions Descrição Recomendação
AbortOnConnectFail Quando definido como true, a conexão não reconectará após uma falha de rede. Defina como false e deixe o StackExchange.Redis reconectar-se automaticamente.
ConnectRetry O número de vezes para repetir tentativas de conexão durante a conexão inicial. Consulte as observações a seguir para se orientar.
ConnectTimeout Tempo limite em ms para operações de conexão. Consulte as observações a seguir para se orientar.

Normalmente, os valores padrão do cliente são suficientes. Você pode realizar o ajuste fino das opções com base na sua carga de trabalho.

Novas tentativas

  • Para ConnectRetry e ConnectTimeout, a orientação geral é falhar rapidamente e tentar novamente. Essas diretrizes se baseiam na sua carga de trabalho e em quanto tempo em média leva para o cliente emitir um comando Redis e receber uma resposta.
  • Deixe o StackExchange.Redis reconectar-se automaticamente, em vez de você verificar o status de conexão e realizar a reconexão. Evitar usar a propriedade ConnectionMultiplexer.IsConnected.
  • Bola de neve – às vezes, pode ocorrer um problema em que você realiza novas tentativas e elas se tornam uma bola de neve, sem nunca se recuperarem. Caso ocorra essa bola de neve, considere usar um algoritmo de nova tentativa de retirada exponencial, conforme descrito em Diretrizes gerais sobre novas tentativas publicado pelo grupo de Padrões e práticas da Microsoft.

Valores de tempo limite

  • Considere sua carga de trabalho e defina os valores de acordo. Se você estiver armazenando valores grandes, defina o tempo limite como um valor mais alto.

  • Defina AbortOnConnectFail como false e deixe StackExchange.Redis reconectar-se para você.

  • Use uma única instância ConnectionMultiplexer de longa duração em vez de criar uma nova conexão para cada solicitação. Para obter um exemplo de como gerenciar uma conexão, confira a classe RedisConnection em Conectar-se ao cache com RedisConnection.

  • Defina a propriedade ConnectionMultiplexer.ClientName como um nome exclusivo de instância de aplicativo para fins de diagnóstico.

  • Usar várias instâncias de ConnectionMultiplexer para cargas de trabalho personalizadas.

    Siga este modelo se tem variações de cargas em seu aplicativo. Por exemplo:

    • Você pode ter um multiplexador para lidar com chaves grandes.
    • Você pode ter um multiplexador para lidar com chaves pequenas.
    • Defina valores diferentes para o tempo limite da conexão e a lógica de repetição para cada ConnectionMultiplexer que você usa.
    • Definir a propriedade ClientName em cada multiplexador para ajudar no diagnóstico.

    Seguir essas diretrizes podem levar a uma latência mais simplificada por ConnectionMultiplexer.

Quais clientes do Cache do Azure para Redis posso usar?

Uma das coisas legais sobre o Redis é que há muitos clientes que dão suporte a várias linguagens de programação diferentes. Para obter uma lista atual de clientes, confira Clientes Redis. Para ver tutoriais que abrangem vários idiomas e clientes diferentes, confira Como usar o Cache do Azure para Redis.

Obter o nome do host, as portas e a chave de acesso

Para se conectar ao servidor do Cache do Azure para Redis, o cliente de cache precisa do nome do host, das portas e da chave de acesso do cache. Alguns clientes podem se referir a esses itens usando nomes ligeiramente diferentes. Você pode obter o nome do host, as portas e as chaves no portal do Azure.

  • Para obter uma chave de acesso para seu cache:

    1. No portal do Azure, acesse seu cache.
    2. No menu de serviço, em Configurações, selecione Autenticação.
    3. No painel Autenticação, selecione a guia Chaves de acesso.
    4. Para copiar o valor de uma chave de acesso, selecione o ícone Copiar no campo de chave.

    Captura de tela mostrando como encontrar e copiar uma chave de acesso para uma instância do Cache do Azure para Redis.

  • Para obter o nome do host e as portas do cache:

    1. No portal do Azure, acesse seu cache.
    2. No menu de serviço, selecione Visão geral.
    3. Em Essentials, para o Nome do host, selecione o ícone Copiar para copiar o valor do nome do host. O valor do nome do host tem o formato <DNS name>.redis.cache.windows.net.
    4. Para Portas, selecione o ícone Copiar para copiar os valores da porta.

    Captura de tela que mostra como encontrar e copiar o nome do host e as portas de uma instância do Cache do Azure para Redis.

Há um emulador local para o Cache do Azure para Redis?

Não há emulador local para o Cache do Azure para Redis. No entanto, você pode executar uma cópia do Redis da comunidade em seu computador local e conectar-se a ele para obter uma experiência semelhante a um emulador de cache local, conforme mostrado no exemplo a seguir:

private static Lazy<ConnectionMultiplexer>
    lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
    {
        // Connect to a locally running instance of Redis to simulate
        // a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

public static ConnectionMultiplexer Connection
{
    get
    {
        return lazyConnection.Value;
    }
}

O Redis é executado nativamente no Linux, mas você também pode usar o Subsistema do Windows para Linux para executar o Redis em um computador com Windows. Para obter mais informações, consulte Instalar Redis no Windows. Se você quiser, poderá configurar um arquivo redis.conf para corresponder melhor às configurações de cache padrão do Cache do Azure para Redis online.

Como posso executar comandos do Redis?

Você pode usar qualquer comando listado em Comandos do Redis, exceto os listados em Comandos do Redis sem suporte no Cache do Azure para Redis. Você tem várias opções para executar comandos do Redis.

Se você tiver um cache Standard ou Premium, poderá executar comandos do Redis usando o Console do Redis. O console Redis fornece uma maneira segura para executar comandos do Redis no portal do Azure.

Também é possível usar as ferramentas de linha de comando do Redis. Para usa, consulte Como usar a ferramenta de linha de comando Redis com Cache do Azure para Redis

Por que o Cache do Azure para Redis não tem uma referência da biblioteca de classes MSDN?

O Cache do Azure para Redis da Microsoft baseia-se no conhecido armazenamento de dados na memória de software livre, Redis. Você pode usar uma ampla variedade de clientes Redis para muitas linguagens de programação. Cada cliente tem sua própria API, que faz chamadas para a instância de Cache do Azure para Redis usando comandos do Redis.

Como cada cliente é diferente, não é possível encontrar uma referência de classe centralizada no MSDN. Cada cliente mantém a própria documentação de referência. Além da documentação de referência, há vários tutoriais que mostram como começar a usar o Cache do Azure para Redis usando diferentes linguagens e clientes de cache. Para acessar esses tutoriais, confira Como usar o Cache Redis do Azure e seus artigos relacionados no sumário.

Posso usar o Cache do Azure para Redis como um cache de sessão em PHP?

Sim, para usar o Cache do Azure para Redis como um cache de sessão de PHP, especifique a cadeia de conexão para sua instância de Cache do Azure para Redis no session.save_path.

Importante

Ao usar o Cache do Azure para Redis como um cache de sessão em PHP, você deve aplicar codificação URL à chave de segurança usada para se conectar ao cache, conforme mostrado no exemplo a seguir:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Se a chave não for codificada em URL, você receberá uma exceção com uma mensagem como: Failed to parse session.save_path

Para obter mais informações sobre como usar o Cache do Azure para Redis como um cache de sessão de PHP com o cliente PhpRedis, confira Manipulador de sessão do PHP.

Quais são os bancos de dados do Redis?

Os Bancos de Dados Redis são apenas uma separação lógica dos dados dentro da mesma instância do Redis. A memória do cache é compartilhada entre todos os bancos de dados, e o consumo real da memória de um determinado banco de dados depende de chaves/valores armazenados no banco de dados. Por exemplo, um cache C6 tem 53 GB de memória, e um P5 tem 120 GB. Você pode optar por colocar todos os 53 GB/120 GB em um banco de dados, ou você pode dividi-los entre vários bancos de dados.

Observação

Ao usar um Cache do Azure para Redis Premium com cluster habilitado, somente o banco de dados 0 estará disponível. Essa limitação é uma limitação do Redis intrínseca e não é específica do Cache do Azure para Redis.

Confira outras perguntas frequentes do Cache do Azure para Redis.