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.
- Você pode conferir um dos nossos tutoriais disponíveis para .NET, ASP.NET, Java, Node.js e Python.
- Você pode assistir ao vídeo sobre Como criar aplicativos de alto desempenho usando o Cache do Microsoft Azure para Redis.
- Você pode conferir a documentação dos clientes de exemplo que correspondem à linguagem de desenvolvimento que você usa no seu projeto. Há muitos clientes Redis que podem ser usados com o Cache do Azure para Redis. Lista de clientes Redis, consulte https://redis.io/clients.
Se ainda não tiver uma conta do Azure, você poderá:
- Abrir uma conta do Azure gratuitamente. Obtenha créditos que possam ser usados para experimentar os serviços pagos do Azure. Mesmo depois que os créditos são usados, você pode manter a conta e usar os serviços e recursos gratuitos do Azure.
- Ativar benefícios de assinante do Visual Studio. Todos os meses, sua assinatura do MSDN lhe oferece créditos que podem ser usados para serviços pagos do Azure.
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 classeRedisConnection
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:
- No portal do Azure, acesse seu cache.
- No menu de serviço, em Configurações, selecione Autenticação.
- No painel Autenticação, selecione a guia Chaves de acesso.
- Para copiar o valor de uma chave de acesso, selecione o ícone Copiar no campo de chave.
Para obter o nome do host e as portas do cache:
- No portal do Azure, acesse seu cache.
- No menu de serviço, selecione Visão geral.
- 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
. - Para Portas, selecione o ícone Copiar para copiar os valores da porta.
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.
Conteúdo relacionado
Confira outras perguntas frequentes do Cache do Azure para Redis.