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, consulte a classe `RedisConnection`` em Conexão 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.
    • Você pode seguir este modelo se tem variação de carga 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.
    • Você pode definir 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.
    • 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.

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 as chaves de acesso, selecione Autenticação no menu Recurso. Em seguida, selecione a guia Chaves de acesso.

    Chaves do Cache Redis 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 <nome DNS>.redis.cache.windows.net.

    Propriedades do Cache Redis do Azure

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

Não há emulador local para o Cache do Azure para Redis. Você pode executar a versão do MSOpenTech do redis-server.exe das ferramentas de linha de comando do Redis em seu computador local. Em seguida, conecte-se a ele para obter uma experiência semelhante a um emulador de cache local, conforme mostrado no seguinte exemplo:

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;
    }
}

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 usá-las, execute as seguintes etapas:

  1. Baixe as Ferramentas de linha de comando do Redis.

  2. Conecte-se ao cache usando redis-cli.exe.

  3. Passe no ponto de extremidade de cache usando que o comutador -h e a chave usando - a, como mostrado no exemplo a seguir:

    redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Observação

As ferramentas de linha de comando do Redis não funcionam com a porta TLS, mas você pode usar um utilitário como o stunnel para conectar as ferramentas com segurança à porta TLS seguindo as instruções no artigo Como usar a ferramenta de linha de comando do Redis com o 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.