Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

redis - Usando Hashes


Sim, está relacionado à eficiência.

Pedimos a opinião do sempre útil Pieter Noordhuis, um dos principais desenvolvedores do Redis, e ele sugeriu que usássemos hashes do Redis. Hashes no Redis são dicionários que podem ser codificados na memória de forma muito eficiente; a configuração do Redis 'hash-zipmap-max-entries' configura o número máximo de entradas que um hash pode ter enquanto ainda está sendo codificado com eficiência. Descobrimos que essa configuração era melhor em torno de 1000; qualquer superior e os comandos HSET causariam atividade perceptível na CPU. Para obter mais detalhes, você pode verificar o arquivo de origem do zipmap.

Pequenos hashes são codificados de uma maneira especial (zipmaps), que é eficiente em termos de memória, mas torna as operações O(N) em vez de O(1). Assim, com um zipmap com 100k campos em vez de 100 zipmaps com 1k campos você não ganha nenhum benefício de memória, mas todas as suas operações ficam 100 vezes mais lentas.