[Redis] estrutura de dados hashmap

Uma descrição

Redis em que um tipo hashmap dados, isto é, a tabela hash

Normal conseguir hashmap:

1. Atribuir tamanho fixo tamanho balde n

2. Calcular valor chave da mistura, e o módulo n, para obter o índice de posição banheira índice

2 O índice calculado, e em seguida armazenada no balde correspondente

4. Quando confrontado com uma colisão, o problema de colisão será resolvido através da lista


Dois, Redis estrutura de dados definida


dictht estrutura: para a aplicação efectiva da estrutura da tabela de hash

Dict estrutura: uma camada exterior de encapsulação tabela hash, uma função é usada principalmente quando a repetição dictht corrente necessária, que cria um novo dictht, e quando a palavra será requerido para completar a transferência de uma porção do trabalho


struct dictEntry: por barril, que é a lista de resolução próximo conflito

Três, rehash:

Redis tabela hash normal e tabela hash para perceber que não existe muita diferença, a única diferença é um pouco diferente, no caso da necessidade de re-expansão de rehash-

Como sabemos, o Redis é modo de processo único single-threaded, para o tratamento de repetição Se você tiver concluído um conjunto de dados de uma só vez, uma grande quantidade de dados em tempo, será

Muito demorado operação, e, portanto, não é um one-time Redis terminou manipulação de todos os dados, mas cada vez que o pedido irá desencadear manipulação de trabalho,

Mas a manipulação de dados é uma pequena parte dela.

1.lazy repetição, quando cada dict operação, ele vai levar um slot para um novo hashmap

2.active repetição, cada um ao longo de um período de tempo será de manipulação de dados


Em quarto lugar, o pequeno ponto:

Quando se utiliza um hashmap, não significa que cada um irá Redis directamente tabela maneira hash para armazenar dados, e, por conseguinte, quando usado sozinho chave valor, valor é usado como hashmap,

Ela pode apenas ser usado para armazenar pequenas quantidades de dados e simples, tão em consideração abrangente de desempenho e consumo de memória assim por diante, nos redis começando passará ziplist (lista duplamente vinculada para armazenar os dados comprimidos) links relacionados .

O controlo irá ser utilizado quando hashmap para armazenamento, pode ser controlado por parâmetros:

512 (número de entrada do ziplist armazenamento máximo) de hash-max entradas-ziplist-

mistura-max-ziplist-valor 64 (o número máximo de bytes ziplist uma entrada armazenada)

Qualquer mais do que esses dois limites, falará ziplist convertido em hashmap

Publicado 140 artigos originais · Louvor obteve 28 · vista 180 000 +

Acho que você gosta

Origin blog.csdn.net/qq_16097611/article/details/79872678
Recomendado
Clasificación