Manuel chinois ...login
Manuel chinois d'opération de commande Redis
auteur:php.cn  temps de mise à jour:2022-04-12 14:07:28

Redis HyperLogLog


Redis a ajouté la structure HyperLogLog dans la version 2.8.9.

Redis HyperLogLog est un algorithme utilisé pour les statistiques de cardinalité. L'avantage de HyperLogLog est que lorsque le nombre ou le volume des éléments d'entrée est très grand, l'espace requis pour calculer la cardinalité est toujours fixe. , et très petit.

Dans Redis, chaque clé HyperLogLog ne nécessite que 12 Ko de mémoire pour calculer la base de près de 2^64 éléments différents. nombre. Cela contraste fortement avec une collection qui consomme plus de mémoire lors du calcul de la cardinalité. Plus il y a d'éléments, plus la mémoire est consommée.

Cependant, comme HyperLogLog calculera uniquement la base en fonction de l'élément d'entrée et ne stockera pas l'élément d'entrée lui-même, donc HyperLogLog ne peut pas renvoyer des éléments individuels de l'entrée comme une collection.


Qu'est-ce qu'une cardinalité ?

Par exemple, si l'ensemble de données est {1, 3, 5, 7, 5, 7, 8}, alors l'ensemble de cardinalités de cet l'ensemble de données est {1, 3, 5, 7, 8}, la cardinalité (éléments non répétitifs) est 5. L'estimation de la cardinalité consiste à calculer rapidement la cardinalité dans la plage d'erreur acceptable.


Exemple

L'exemple suivant démontre le processus de fonctionnement d'HyperLogLog :

redis 127.0.0.1:6379> PFADD w3ckey "redis"

1) (integer) 1

redis 127.0.0.1:6379> PFADD w3ckey "mongodb"

1) (integer) 1

redis 127.0.0.1:6379> PFADD w3ckey "mysql"

1) (integer) 1

redis 127.0.0.1:6379> PFCOUNT w3ckey

(integer) 3

Commande Redis HyperLogLog

Le tableau suivant répertorie redis Commandes de base d'HyperLogLog :

序号命令及描述
1PFADD key element [element ...]
添加指定元素到 HyperLogLog 中。
2PFCOUNT key [key ...]
返回给定 HyperLogLog 的基数估算值。
3PFMERGE destkey sourcekey [sourcekey ...]
将多个 HyperLogLog 合并为一个 HyperLogLog

Site Web PHP chinois