Este artigo fornece respostas a perguntas comuns sobre como desenvolver para o Cache do Azure para Redis.
Como posso começar 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 de nossos tutoriais disponíveis para .NET, ASP.NET, Java, Node.js e Python.
- Você pode assistir Como criar aplicativos de alto desempenho usando o Cache do Microsoft Azure para Redis.
- Você pode verificar a documentação do cliente para os clientes de exemplo que correspondem à linguagem de desenvolvimento que você usa em seu projeto. Há muitos clientes Redis que podem ser usados com o Cache do Azure para Redis. Para obter uma lista de clientes Redis, consulte https://redis.io/clients.
Se ainda não tiver uma conta do Azure, pode:
- Criar uma conta do Azure gratuitamente. Receberá créditos que podem ser utilizados para experimentar os serviços pagos do Azure. Mesmo depois de gastar todos os créditos, pode manter a conta e utilizar os serviços e recursos gratuitos do Azure.
- Ativar os benefícios de subscritor do Visual Studio. A sua subscrição do MSDN dá-lhe créditos todos os meses que pode utilizar em serviços pagos do Azure.
O que fazem as opções de configuração do StackExchange.Redis?
StackExchange.Redis tem muitas opções. Esta seção fala sobre algumas das configurações comuns. Para obter informações mais detalhadas sobre as opções do StackExchange.Redis, consulte Configuração do StackExchange.Redis.
ConfigurationOptions | Description | Recomendação |
---|---|---|
AbortOnConnectFail | Quando definida como true, a conexão não pode se reconectar após uma falha de rede. | Defina como false e deixe o StackExchange.Redis se reconectar automaticamente. |
ConnectRetry | O número de vezes que as tentativas de conexão devem ser repetidas durante a conexão inicial. | Consulte as seguintes notas para obter orientações. |
ConnectTimeout | Tempo limite em ms para operações de conexão. | Consulte as seguintes notas para obter orientações. |
Normalmente, os valores padrão do cliente são suficientes. Você pode ajustar as opções com base na sua carga de trabalho.
Tentativas
- Para ConnectRetry e ConnectTimeout, a orientação geral é falhar rapidamente e tentar novamente. Esta orientação é baseada em sua carga de trabalho e quanto tempo --- em média --- leva para seu cliente emitir um comando Redis e receber uma resposta.
- Deixe o StackExchange.Redis se reconectar automaticamente em vez de verificar o status da conexão e se reconectar. Evite usar a propriedade ConnectionMultiplexer.IsConnected.
- Bola-de-neve - você pode se deparar com um problema em que você está tentando novamente e as tentativas de bola de neve e nunca se recuperar. Se ocorrer uma bola de neve, considere o uso de um algoritmo de repetição de backoff exponencial, conforme descrito nas diretrizes gerais de repetição publicadas pelo grupo Microsoft Patterns & Practices.
Valores de tempo limite
- Considere sua carga de trabalho e defina os valores correspondentes. Se você estiver armazenando valores grandes, defina o tempo limite para um valor mais alto.
- Defina
AbortOnConnectFail
como false e deixe o StackExchange.Redis se reconectar para você. - Use uma única instância de longa duração
ConnectionMultiplexer
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 Conectar-se ao cache com RedisConnection. - Defina a propriedade como um nome exclusivo da instância do
ConnectionMultiplexer.ClientName
aplicativo para fins de diagnóstico. - Use várias
ConnectionMultiplexer
instâncias para cargas de trabalho personalizadas.- Você pode seguir esse modelo se tiver carga variável em seu aplicativo. Por exemplo:
- Você pode ter um multiplexador para lidar com chaves grandes.
- Você pode ter um multiplexador para lidar com teclas pequenas.
- Você pode definir valores diferentes para tempos limite de conexão e lógica de repetição para cada ConnectionMultiplexer que você usa.
- Defina a propriedade em cada multiplexador para ajudar com o
ClientName
diagnóstico. - Essas orientações podem levar a uma latência mais simplificada por
ConnectionMultiplexer
.
Que Cache do Azure para clientes Redis posso usar?
Uma das grandes coisas sobre o Redis é que há muitos clientes suportando muitas linguagens de desenvolvimento diferentes. Para obter uma lista atual de clientes, consulte Clientes Redis. Para tutoriais que abrangem vários idiomas e clientes diferentes, consulte Como usar o Cache do Azure para Redis.
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 as chaves de acesso, selecione Autenticação no menu Recurso. Em seguida, selecione a guia Teclas de acesso.
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>.
Existe 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 sua máquina local e conectar-se a ela 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 Windows para Linux para executar o Redis em uma máquina Windows. Para obter mais informações, consulte Instalar o Redis no Windows Opcionalmente, você pode configurar um arquivo redis.conf para corresponder mais de perto às configurações de cache padrão do seu Cache do Azure para Redis online, se desejar.
Como posso executar comandos Redis?
Você pode usar qualquer um dos comandos listados em Comandos Redis, exceto os comandos listados em Comandos Redis sem suporte no Cache do Azure para Redis. Você tem várias opções para executar comandos Redis.
Se você tiver um cache Standard ou Premium, poderá executar comandos Redis usando o Console Redis. O console Redis fornece uma maneira segura de executar comandos Redis no portal do Azure.
Você também pode usar as ferramentas de linha de comando Redis. Para usá-los, consulte Usar a ferramenta de linha de comando Redis com o Cache Redis do Azure
Por que o Cache Redis do Azure não tem uma referência de biblioteca de classes do MSDN?
O Cache Redis do Microsoft Azure é baseado no popular armazenamento de dados na memória de código aberto, Redis. Você pode usar uma grande variedade de clientes Redis para muitas linguagens de programação. Cada cliente tem sua própria API que faz chamadas para a instância do Cache Redis do Azure usando comandos Redis.
Como cada cliente é diferente, não é possível encontrar uma referência de classe centralizada no MSDN. Cada cliente mantém a sua própria documentação de referência. Além da documentação de referência, há vários tutoriais mostrando como começar a usar o Cache Redis do Azure usando diferentes idiomas e clientes de cache. Para acessar esses tutoriais, consulte Como usar o Cache Redis do Azure e seus artigos irmãos no sumário.
Posso usar o Cache Redis do Azure como um cache de sessão PHP?
Sim, para usar o Cache do Azure para Redis como um cache de sessão PHP, especifique a cadeia de conexão para sua instância do Cache do Azure para Redis no session.save_path
.
Importante
Ao usar o Cache Redis do Azure como um cache de sessão PHP, você deve codificar a 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 estiver codificada por URL, poderá 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 PHP com o cliente PhpRedis, consulte Manipulador de sessão PHP.
O que são bancos de dados Redis?
Os bancos de dados Redis são apenas uma separação lógica de dados dentro da mesma instância do Redis. A memória cache é compartilhada entre todos os bancos de dados e o consumo real de memória de um determinado banco de dados depende das chaves/valores armazenados nesse 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 pode dividi-lo entre vários bancos de dados.
Nota
Ao usar um Cache Premium do Azure para Redis com clustering habilitado, apenas o banco de dados 0 está disponível. Essa limitação é uma limitação intrínseca do Redis e não é específica do Cache do Azure para Redis.
Conteúdos relacionados
Saiba mais sobre outras perguntas frequentes do Cache do Azure para Redis.