Latest web development tutorials

partição Redis

Partição está dividida numa pluralidade de dados de processamento Redis casos, cada instância para guardar apenas um subconjunto da chave.

Benefícios do particionamento

  • Ao usar a memória e os valores de mais de um computador, permite-nos construir um banco de dados maior.
  • Por computadores multicore e multiprocessadores, o que nos permite expandir a capacidade de computação; através de múltiplos computadores e placas de rede, permitindo-nos expandir a largura de banda de rede.

partição inadequada

Alguns redis características de desempenho de particionamento não é muito bom:

  • Operação envolve mais de uma chave, geralmente não é suportado. Por exemplo, quando dois conjuntos mapeada para diferentes instâncias do Redis, você não será capaz de realizar estes dois set operação de interseção.
  • Trata-se de um número de transacção Redis chave não podem ser utilizados.
  • Ao usar partições, o processamento de dados mais complexos, por exemplo, você precisa lidar com múltiplos RDB / AOF arquivos e arquivos de backup de várias instâncias de persistência e de acolhimento.
  • Adicionar ou remover capacidade também é mais complicado. Redis cluster de apoio maioritário no tempo de execução aumenta, dados transparentes excluir nós equilíbrio de poder, mas semelhante à partição do cliente, agentes e outros sistemas não suportam esta funcionalidade. No entanto, esta técnica chamada presharding é útil.

O tipo de partição

Redis Existem dois tipos de partições. Suponha que há quatro Redis exemplo R0, R1, R2, R3, e de usuário similar: 1, o usuário: uma pluralidade de chave 2 como uma representação em usuários, dada a chave para selecionar uma variedade de diferentes formas em que a chave é armazenada na instância . Em outras palavras, existem diferentes sistemas para mapear uma chave para um serviço Redis.

particionamento de intervalo

A maneira mais fácil é para particionar gama de particionamento é mapeado para uma gama de exemplo Redis de assunto específico.

Por exemplo, ID de 0 a 10000 usuários irá salvar a instância R0, ID de 10001-20000 usuários serão salvos em R1, e assim por diante.

Esta abordagem é exequível e uso prático, é de ter uma gama de menos do que a faixa do exemplo tabela de mapeamento. Esta tabela é para ser administrada, mas também precisa mapear vários objetos, geralmente Redis não é um bom método.

Partitioning Hash

Outra abordagem é para hash partições de particionamento. Isso se aplica a qualquer tecla, e não precisa ser object_name: Esta forma, tão simples como descrito abaixo:

  • Usando uma tecla de função hash é convertida para uma série, tais como a utilização da função CRC32 hash. A implementação de crc32 foobar chave (foobar) irá imprimir um número inteiro de semelhante 93.024.922.
  • Este módulo inteiro, o qual foi convertido para digital entre 0-3, que pode ser mapeada para o número inteiro 4 Redis exemplo, ser uma. 93.024.922% 4 = 2, isto é foobar chave deve ser salvo em caso R2. Nota: A operação de módulo é levar o resto da adição, o operador% é geralmente implementada utilizando uma variedade de linguagens de programação.