Configurar o agrupamento Redis para um Premium Cache Azure para a instância Redis

Azure Cache para Redis oferece cluster Redis como implementado em Redis. Com o Redis Cluster, obtém os seguintes benefícios:

  • A capacidade de dividir automaticamente o conjunto de dados entre vários nós.
  • A capacidade de continuar as operações quando um subconjunto dos nós está a sofrer falhas ou não consegue comunicar com o resto do cluster.
  • Mais produção: A produção aumenta linearmente à medida que aumenta o número de fragmentos.
  • Mais tamanho da memória: Aumenta linearmente à medida que aumenta o número de fragmentos.

O agrupamento não aumenta o número de ligações disponíveis para uma cache agrupada. Para obter mais informações sobre tamanho, produção e largura de banda com caches premium, consulte Escolher o nível certo

Em Azure, o cluster Redis é oferecido como um modelo primário/réplica onde cada fragmento tem um par primário/réplica com replicação, onde a replicação é gerida por Azure Cache para o serviço Redis.

Configurar agrupamento

O agrupamento está ativado Nova Cache Azure para Redis à esquerda durante a criação de cache.

  1. Para criar uma cache premium, inscreva-se no portal Azure e selecione Criar um recurso. Além de criar caches no portal Azure, também pode criá-los usando modelos de Gestor de Recursos, PowerShell ou Azure CLI. Para obter mais informações sobre a criação de uma Cache Azure para Redis, consulte Criar uma cache.

    Criar recurso.

  2. Na página Nova, selecione Bases de Dados e, em seguida, selecione Azure Cache para Redis.

    Selecione Azure Cache para Redis.

  3. Na página New Redis Cache, configufique as definições para a sua nova cache premium.

    Definição Valor sugerido Descrição
    Nome DNS Introduza um nome globalmente exclusivo. O nome da cache deve ser uma corda entre 1 e 63 caracteres. A corda só pode conter números, letras ou hífens. O nome deve começar e terminar com um número ou letra, e não pode conter hífenes consecutivos. O nome de anfitrião do seu caso de cache será <DNS name> .redis.cache.windows.net.
    Subscrição Drop-down e selecione a sua subscrição. A subscrição sob a qual criar este novo Azure Cache para a instância Redis.
    Grupo de recursos Drop-down e selecione um grupo de recursos, ou selecione Criar novo e introduza um novo nome de grupo de recursos. Nome para o grupo de recursos para criar o seu cache e outros recursos. Ao colocar todos os recursos da sua aplicação num único grupo de recursos, pode facilmente geri-los ou eliminá-los em conjunto.
    Localização Drop-down e selecione um local. Selecione uma região perto de outros serviços que utilizarão o seu cache.
    Tipo cache Drop-down e selecione um cache premium para configurar funcionalidades premium. Para mais detalhes, consulte a Cache Azure para obter preços de Redis. O escalão de preço determina o tamanho, o desempenho e as funcionalidades que estão disponíveis para a cache. Para mais informações, consulte Azure Cache para ver visão geral do Redis.
  4. Selecione o separador 'Rede' ou selecione o botão de Rede na parte inferior da página.

  5. No separador 'Rede', selecione o seu método de conectividade. Para instâncias de cache premium, pode ligar publicamente, através de endereços IP públicos ou pontos finais de serviço, ou em particular, usando um ponto final privado.

  6. Selecione o Seguinte: Separador avançado ou selecione o seguinte: Botão avançado na parte inferior da página.

  7. No separador Avançado para uma instância de cache premium, configurar as definições para a porta não-TLS, clustering e persistência de dados. Para ativar o agrupamento, selecione Ativar.

    Agrupar o alternador.

    Pode ter até 10 fragmentos no aglomerado. Depois de selecionar Ativar, deslize o slider ou digite um número entre 1 e 10 para a contagem de fragmentos e selecione OK.

    Cada fragmento é um par de cache primário/réplica gerido por Azure, e o tamanho total da cache é calculado multiplicando o número de fragmentos pelo tamanho da cache selecionado no nível de preços.

    Agrupar o alternância selecionado.

    Uma vez criada a cache, liga-se a ela e utiliza-se como uma cache não agrupada. Redis distribui os dados através dos fragmentos de Cache. Se os diagnósticos estiverem ativados,as métricas são capturadas separadamente para cada fragmento e podem ser vistas em Cache Azure para Redis à esquerda.

  8. Selecione o separador Seguinte: Etiquetas ou selecione o botão Seguinte: Tags na parte inferior da página.

  9. Opcionalmente, no separador Tags, insira o nome e o valor se desejar categorizar o recurso.

  10. Selecione Rever + criar. É levado para o separador 'Rever +' onde o Azure valida a sua configuração.

  11. Depois de aparecer a mensagem de validação verde, selecione Criar.

Demora um pouco para a cache criar. Pode monitorizar o progresso na cache Azure para a página Redis Overview. Quando o Estado aparece como Running, a cache está pronta a ser utilizada.

Nota

Existem algumas pequenas diferenças necessárias na sua aplicação de cliente quando o clustering é configurado. Para mais informações, consulte Preciso de fazer alterações à aplicação do meu cliente para utilizar o clustering?

Para obter o código de amostra sobre o trabalho de agrupamento com o cliente StackExchange.Redis, consulte o agrupamento.cs porção da amostra Hello World.

Mude o tamanho do cluster numa cache premium de corrida

Para alterar o tamanho do cluster numa cache premium de execução com o clustering ativado, selecione o Tamanho do Cluster a partir do menu Recursos.

Tamanho do cluster Redis

Para alterar o tamanho do cluster, utilize o deslizador ou escreva um número entre 1 e 10 na caixa de texto de contagem de fragmentos. Em seguida, selecione OK para guardar.

Aumentar o tamanho do cluster aumenta a potência máxima e o tamanho da cache. Aumentar o tamanho do cluster não aumenta as ligações máximas disponíveis para os clientes.

Nota

Escalar um cluster executa o comando MIGRATE, que é um comando caro, por isso, para o mínimo impacto, considere executar esta operação durante horas não-pico. Durante o processo de migração, verá um pico na carga do servidor. Escalar um cluster é um processo de execução longo e o tempo de duração dependerá do número de chaves e do tamanho dos valores associados a essas teclas.

FaQ de agrupamento

A lista que se segue contém respostas para perguntas comumente feitas sobre Azure Cache para o agrupamento Redis.

Preciso de fazer alguma alteração na aplicação do meu cliente para usar o agrupamento?

Como as chaves são distribuídas num aglomerado?

De acordo com a documentação do modelo de distribuição Redis Keys: O espaço chave é dividido em 16384 slots. É aplicado um hash a cada chave e é atribuída a um desses blocos, que são distribuídos pelos nós do cluster. Pode configurar a que parte da chave é aplicado o hash para garantir que várias chaves estão localizadas na mesma extensão com etiquetas hash.

  • Chaves com uma etiqueta hash – se alguma parte da chave estiver incluída em { e }, o hash será aplicado apenas a essa parte da chave para efeitos de determinar o bloco hash de uma chave. Por exemplo, as três chaves que se seguem devem estar localizadas na mesma extensão: {key}1, {key}2 e {key}3, dado que o hash apenas é aplicado à parte key do nome. Para obter uma lista completa das especificações das etiquetas hash das chaves, veja Etiquetas das chaves hash.
  • Chaves sem etiqueta hash – o nome de chave completo é utilizado para hashing, o que resulta numa distribuição estatisticamente uniforme através das extensões da cache.

Para melhor desempenho e produção, recomendamos distribuir as chaves uniformemente. Se estiver a utilizar chaves com uma etiqueta hash, é da responsabilidade da aplicação garantir que as chaves são distribuídas uniformemente.

Para obter mais informações, veja Modelo de distribuição de chaves, Extensão de dados do Cluster de Redis e Etiquetas hash das chaves.

Para obter o código de amostra sobre o trabalho com as chaves de agrupamento e localização no mesmo fragmento com o cliente StackExchange.Redis, consulte o agrupamento.cs porção da amostra Hello World.

Qual é o maior tamanho de cache que posso criar?

O maior tamanho de cache premium é de 120 GB. Pode criar até 10 fragmentos dando-lhe um tamanho máximo de 1,2 TB. Se precisar de um tamanho maior, pode solicitar mais. Para mais informações, consulte a Cache Azure para redis pricing.

Todos os clientes redis suportam o agrupamento?

Muitos clientes apoiam o agrupamento redis, mas não todos. Verifique a documentação da biblioteca que está a usar para verificar se está a usar uma biblioteca e versão que suportam o agrupamento. StackExchange.Redis é uma biblioteca que suporta o agrupamento, nas suas versões mais recentes. Para obter mais informações sobre outros clientes, consulte a secção de Jogo com a secção de cluster do tutorial do cluster Redis.

O protocolo de clustering Redis requer que cada cliente se conecte a cada fragmento diretamente no modo de agrupamento, e também define novas respostas de erro, como 'MOVE' na 'CROSSSLOTS'. Quando tenta utilizar um cliente, que não suporta o agrupamento, com uma cache de modo cluster, o resultado pode ser muitas exceções de redirecionamento MOVE, ou apenas quebrar a sua aplicação, se estiver a fazer pedidos multi-chave de cross-slot.

Nota

Se estiver a utilizar o StackExchange.Redis como cliente, certifique-se de que está a utilizar a versão mais recente do StackExchange.Redis 1.0.481 ou mais tarde para que o agrupamento funcione corretamente. Para obter mais informações sobre quaisquer questões com exceções de movimento, consulte as exceções de movimento.

Como posso ligar-me à minha cache quando o agrupamento está ativado?

Pode ligar-se ao seu cache utilizando os mesmos pontos finais, portase chaves que utiliza ao ligar-se a uma cache que não tem o agrupamento ativado. O Redis gere o agrupamento no backend para não teres de o gerir a partir do teu cliente.

Posso ligar-me diretamente aos fragmentos individuais da minha cache?

O protocolo de clustering requer que o cliente faça as ligações de fragmentos corretas, pelo que o cliente deve fazer ligações de partilha para si. Dito isto, cada fragmento consiste de um par de cache primário/réplica, coletivamente conhecido como um cache instance. Pode ligar-se a estas instâncias de cache utilizando o utilitário redis-cli no ramo instável do repositório Redis em GitHub. Esta versão implementa suporte básico quando começa com o -c interruptor. Para obter mais informações, consulte "Jogar com o cluster" https://redis.io no tutorial do cluster Redis.

Para não-TLS, utilize os seguintes comandos.

Redis-cli.exe –h <<cachename>> -p 13000 (to connect to instance 0)
Redis-cli.exe –h <<cachename>> -p 13001 (to connect to instance 1)
Redis-cli.exe –h <<cachename>> -p 13002 (to connect to instance 2)
...
Redis-cli.exe –h <<cachename>> -p 1300N (to connect to instance N)

Para TLS, 1300N substitua- por 1500N .

Posso configurar o agrupamento para uma cache previamente criada?

Sim. Em primeiro lugar, certifique-se de que o seu cache é premium aumentando-o. Em seguida, pode ver as opções de configuração do cluster, incluindo uma opção para ativar o cluster. Mude o tamanho do cluster após a criação da cache, ou depois de ter ativado o agrupamento pela primeira vez.

Importante

Não se pode desfazer o agrupamento. E uma cache com agrupamento ativado e apenas um fragmento comporta-se de forma diferente de uma cache do mesmo tamanho sem agrupamento.

Posso configurar o agrupamento para uma cache básica ou padrão?

O agrupamento só está disponível para caches premium.

Posso utilizar o agrupamento com os fornecedores redis ASP.NET Session State e output Colocação em Cache?

  • Reensitado fornecedor de Cache de Saída Redis - não são necessárias alterações.
  • Redis Session State provider - para utilizar o clustering, você deve usar RedisSessionStateProvider 2.0.1 ou mais alto ou uma exceção é lançada, o que é uma mudança de rutura. Para obter mais informações, consulte v2.0.0 Breaking Change Details.

Estou a receber exceções ao usar StackExchange.Redis e agrupamento, o que devo fazer?

Se estiver a utilizar o StackExchange.Redis e receber MOVE exceções ao utilizar o clustering, certifique-se de que está a utilizar o StackExchange.Redis 1.1.603 ou mais tarde. Para obter instruções sobre a configuração das suas aplicações .NET para utilizar o StackExchange.Redis, consulte configurar os clientes cache.

Passos seguintes

Saiba mais sobre o Azure Cache para funcionalidades redis.