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

HyperLogLog de Redis

Redis en 2.8.9 La versión agregó la estructura HyperLogLog.

Redis HyperLogLog es un algoritmo utilizado para la estadística de基数, una de las ventajas de HyperLogLog es que, cuando la cantidad o el volumen de elementos de entrada es muy grande, el espacio requerido para calcular el基数 siempre es fijo pequeño y muy pequeño.

En Redis, cada clave HyperLogLog solo requiere 12 KB de memoria, se puede calcular una cantidad cercana 2^64 la base de un conjunto de diferentes elementos El número. Esto contrasta marcadamente con los conjuntos que, a medida que aumenta el número de elementos, requieren más memoria para calcular el基数。

Pero, ya que HyperLogLog solo calculará la cardinalidad basándose en los elementos de entrada y no almacenará los elementos de entrada en sí mismos, así que}} HyperLogLog no puede devolver los elementos individuales de entrada como lo hace el conjunto.

¿Qué es la cardinalidad?

Por ejemplo, el conjunto de datos {1, 3, 5, 7, 5, 7, 8}, Entonces, el conjunto de cardinalidad de este conjunto de datos es {1, 3, 5 ,7, 8}, Cardinalidad (elementos no repetidos) de5. La estimación de la cardinalidad es calcular rápidamente la cardinalidad dentro del rango de error aceptable.

Ejemplo en línea

Los siguientes ejemplos ilustran el proceso de funcionamiento de HyperLogLog:

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

Comandos de HyperLogLog de Redis

La siguiente tabla enumera los comandos básicos de HyperLogLog de redis:

NúmeroComando y descripción
1PFADD key element [element ...]
Añade elementos especificados al HyperLogLog.
2PFCOUNT key [key ...]
Devuelve la estimación de la cardinalidad del HyperLogLog dado.
3PFMERGE destkey sourcekey [sourcekey ...]
Combinar múltiples HyperLogLog en un solo HyperLogLog