Redis Cluster KeysLot

Redis Cluster KeysLot

Redis alta disponibilidade

Redis é um armazenamento de dados de baixa latência na memória que fornece os recursos de sharding e replicação prontos para a caixa. Ele garante a alta disponibilidade da instância Redis para suas partes interessadas. Os dois mecanismos a seguir foram usados ​​no Redis Data Store para fornecer alta disponibilidade.

  • Escala horizontal com agrupamento
  • Redis Sentinel

A escala horizontal sempre se concentra em aumentar o número de instâncias em vez de cultivar poder de computação por instância. O cluster de Redis é baseado em escala horizontal, onde um conjunto de nós cuida do funcionamento contínuo da instância.

Cluster Redis

O cluster Redis consiste em vários nós onde cada nó contém uma variedade de slots de hash. Geralmente, um cluster tem 16384 slots de hash. Cada chave Redis está associada a um slot de hash e, para calcular o slot de hash por chave, o Redis usa o CRC16 dos algoritmos Redis Key Modulo 16384. É baseado na técnica de replica mestre, onde um nó mestre falha, e a respectiva réplica dispara e continua a operar em nome do nó falhado.

Vamos supor que o nó x falhe devido a uma falha de rede. Em seguida, o cluster Redis atribuirá a carga de trabalho do nó x ao nó réplica x1, o que garantirá o funcionamento suave. Além disso, os clusters Redis podem dividir os dados de entrada em diferentes nós automaticamente.

Comandos de cluster redis

Vários comandos estão disponíveis para uso contra clusters Redis. O comando de cluster é um comando de contêiner que possui vários subcomando. Você pode usar o conjunto ajuda Subcomando para verificar a lista de subcomandos disponíveis com seu uso.

ajuda do cluster

Como esperado, ele retorna uma resposta de matriz, como mostrado no seguinte.

Saída:

Neste guia, estaremos focados no Keyslot subcomando que está associado ao comando de contêiner CONJUNTO.

Comando Redis Keyslot

O Keyslot O comando é usado para verificar o valor do slot de hash para uma determinada chave Redis, que retorna um valor inteiro. Sempre que você precisar saber sobre o nó associado para uma chave específica, este comando será útil. Outro caso de uso seria, testar seus algoritmos de hash comparando -os com os hashes gerados por este comando e verificando a similaridade. Além disso, o Keyslot O comando tem complexidade do tempo linear.

Sintaxe

A seguir, é a sintaxe para os redis Keyslot Subcomando.

Cluster keyslot redis_key

redis_key: Este é o identificador exclusivo que usamos nos lojas de dados Redis para identificar qualquer valor armazenado.

Este comando retorna o valor do slot de hash da tecla Redis especificada armazenada. Geralmente, esse valor é um número inteiro que varia de 0 a 16383 para um determinado cluster.

Exemplo 01 - Inspecione o slot de hash e o nó de cluster para uma determinada chave

Vamos criar um cluster redis com seis nós onde três deles são nós mestres, e o resto são réplicas. Podemos usar o Slots Subcomando para verificar como os nós foram atribuídos com os slots de hash.

slots de cluster

Como esperado, as informações do cluster foram produzidas como no seguinte.

Vamos adicionar algumas chaves ao nosso cluster Redis, como mostrado no seguinte.

Set Traveler: 1: Coloque a França
Set Traveler: 2: Place India

Agora podemos usar o Keyslot subcomando para verificar quais são os slots de hash que cada chave foi atribuída.

Traveler de Keyslot de cluster: 1: local

A saída se parece com o seguinte.

Ele retornou o número inteiro 8963, o que significa que o slot de hash é 8963. Deve estar no intervalo 5461 - 10922, mostrado na saída a seguir.

O nó mestre é 6001 e essa chave deve ser armazenada lá. O mesmo procedimento pode ser seguido para identificar o nó para o Viajante: 2: local chave.

Exemplo 02 - Lidando com várias chaves pelo mesmo nó Redis

O Keyslot O comando suporta hashtags onde o algoritmo de chave de cluster redis hashes apenas os caracteres entre o e . Sempre que uma tecla Redis segue o padrão mencionado, ele gerará o slot de hash com base nos personagens dentro dos aparelhos encaracolados, e os outros personagens não são considerados. Com as hashtags, podemos forçar a armazenar várias chaves no mesmo nó, como mostrado no seguinte.

Vamos criar alguns pares de valor-chave, como mostrado no seguinte.

Definir usuário: 1: carcolor Common_hash vermelho
Definir usuário: 2: carcolor Common_hash azul

Como mostrado no exemplo, as chaves contêm a hashtag comum Common_hash. Portanto, ambos os valores de slot de hash que são gerados pelo algoritmo Redis Cluster Key Hashing será o mesmo para ambas as teclas. Vamos verificar os slots de hash para ambas as chaves usando o Keyslot subcomando, como mostrado no seguinte.

Usuário do cluster Keyslot: 2: carcolor Common_hash
Usuário do cluster Keyslot: 1: carcolor Common_hash

Como esperado, ambos os comandos retornam o mesmo valor de slot de hash, 8276, o que significa que as chaves são armazenadas no mesmo nó. De acordo com os exemplos acima, você pode ver o quão útil Keyslot O comando é ao lidar com clusters Redis.

Conclusão

Para resumir, Redis suporta sharding, replicação e alta disponibilidade por escala horizontal. A escala horizontal foi alcançada usando os clusters Redis. Conforme discutido, cada cluster é uma coleção de nós onde um nó pode conter vários slots de hash. Um cluster pode conter 16384 slots máximos de hash e cerca de 1000 nós. Como citado, os clusters Redis seguem a técnica de replica mestre, onde um nó mestre falha, e a réplica começará a funcionar em nome do nó falhado. Redis tem uma lista de comandos para operar em clusters. O Keyslot O comando é um daqueles que são usados ​​para obter o valor do slot de hash para uma chave Redis específica. Este comando também suporta as hashtags.