Redis Lock distribuído

Redis Lock distribuído

Em Redis, o particionamento refere -se à divisão de dados em várias instâncias. Isso significa que cada redis contém uma seção de todo o seu conjunto de dados. É um recurso útil, especialmente ao lidar com grandes conjuntos de dados.

Vejamos vários tipos de particionamento em redis e o custo e benefícios de cada.

Tipos de partição redis

Existem dois mecanismos de partição em Redis:

  1. Partição de faixa
  2. Hash particionando

Rang particionando

A melhor maneira de explicar o particionamento é usar uma analogia. Suponha que você tenha quatro instâncias Redis: R0, R1, R2 e R3. Além disso, suponha que você precise armazenar chaves no formato do usuário: [id].

Você pode usar o particionamento de alcance para dividir dados nas instâncias Redis disponíveis.

Na divisão de range, você mapeia uma seção de seus dados em uma instância específica. Por exemplo, você pode pegar as chaves do usuário: [id - id] e mapeá -lo para a instância r0. A instância r1 pode conter o subconjunto de chaves do usuário [id - id] e assim por diante.

Esta é a forma mais simples e aplicável de particionamento em redis. No entanto, ele fornece uma limitação.

A partição de faixa requer uma tabela que mapeie um intervalo específico para o cluster correspondente.

A tabela de mapeamento precisa ser gerenciada e aplicada para cada tipo de dados particionado.

Hash particionando

A segunda alternativa ao particionamento de alcance é a partição de hash. Redis usa uma função de hash para converter uma chave em um número neste método de partição.

Por exemplo, se tivermos um "fato" chave, podemos convertê-lo em um número usando uma função de hash como CRC-16.

Isso deve retornar o número como 8167.

Redis então aplica uma operação de módulo ao número e retorna o resultado de 0 a 3.

Por exemplo:

8167 % 2

A operação acima deve retornar 1. Redis então usa esse valor para determinar qual cluster a chave deve ser armazenada. Em nosso exemplo, a chave "fato" é armazenada na instância R1.

OBSERVAÇÃO: Não é assim que a operação de hash é realizada em Redis. O acima é apenas uma analogia.

Vantagens do particionamento.

  1. O particionamento permite que várias instâncias compartilhem a memória e armazenem dados.
  2. Permitir escala do poder de computação.

Desvantagens do particionamento

  1. Operação com várias teclas não suportada.
  2. Você não pode executar uma transação Redis usando várias chaves.
  3. Apresenta a ambiguidade ao lidar com a persistência.
  4. Dados de encolhimento ou crescimento são difíceis.

Conclusão

Neste guia, você descobriu os vários mecanismos para a partição de Redis. Verifique a documentação para saber mais.