English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

HyperLogLog do Redis

O Redis em 2.8.9 versão adicionou a estrutura HyperLogLog.

O Redis HyperLogLog é um algoritmo usado para estatísticas de cardinalidade, a vantagem do HyperLogLog é que, quando a quantidade ou o volume dos elementos de entrada é muito grande, o espaço necessário para calcular a cardinalidade sempre é fixo e muito pequena.

Dentro do Redis, cada chave HyperLogLog requer 12 KB de memória, é possível calcular uma aproximação 2^64 base de diferentes elementos Números. Isso forma um contraste acentuado com conjuntos formados por elementos, onde mais elementos, maior consumo de memória.

Mas, porque o HyperLogLog calculará a cardinalidade com base nos elementos de entrada e não armazenará os elementos de entrada em si, então O HyperLogLog não pode retornar os elementos individuais da entrada como um conjunto.

O que é cardinalidade?

por exemplo, o conjunto de dados {1, 3, 5, 7, 5, 7, 8}, então o conjunto de cardinalidade deste conjunto de dados é {1, 3, 5 ,7, 8}, Cardinalidade (elementos não repetidos) de5. A estimativa da cardinalidade é calcular rapidamente a cardinalidade dentro do intervalo de erro aceitável.

Exemplo Online

Os seguintes exemplos demonstram o processo de funcionamento do HyperLogLog:

redis 127.0.0.1:6379> PFADD w3codeboxkey "redis"
1) (inteiro) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mongodb"
1) (inteiro) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mysql"
1) (inteiro) 1
redis 127.0.0.1:6379> PFCOUNT w3codeboxkey
(inteiro) 3

Comandos do HyperLogLog do Redis

A tabela a seguir lista os comandos básicos do HyperLogLog do redis:

NúmeroComando e Descrição
1PFADD key element [element ...]
Adiciona elementos especificados ao HyperLogLog.
2PFCOUNT key [key ...]
Retorna a estimativa da cardinalidade do HyperLogLog especificado.
3PFMERGE destkey sourcekey [sourcekey ...]
Juntar vários HyperLogLog em um HyperLogLog único