English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis dans 2.8.9 La version a ajouté la structure HyperLogLog.
Redis HyperLogLog est une algorithmique de statistiques de cardinalité, les avantages de HyperLogLog sont que, lorsque le nombre ou le volume des éléments d'entrée est extrêmement grand, l'espace nécessaire pour calculer le cardinal est toujours fixe et très petite.
Dans Redis, chaque clé HyperLogLog ne nécessite que 12 KB de mémoire, il est possible de calculer une valeur approchée 2^64 de base d'un ensemble d'éléments différents Le nombre. Cela forme une opposition frappante avec les ensembles formés par la base de calcul, où plus les éléments sont nombreux, plus la mémoire consommée est importante.
Mais, puisqu'il ne stocke pas les éléments d'entrée eux-mêmes, HyperLogLog ne peut pas retourner les éléments individuels d'une entrée comme un ensemble. HyperLogLog 不能像集合那样,返回输入的各个元素。
比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。
以下示例演示了 HyperLogLog 的工作过程:
redis 127.0.0.1:6379> PFADD w3codeboxkey "redis" 1) (integer) 1 redis 127.0.0.1:6379> PFADD w3codeboxkey "mongodb" 1) (integer) 1 redis 127.0.0.1:6379> PFADD w3codeboxkey "mysql" 1) (integer) 1 redis 127.0.0.1:6379> PFCOUNT w3codeboxkey (integer) 3
下表列出了 redis HyperLogLog 的基本命令:
序号 | 命令及描述 |
---|---|
1 | PFADD key element [element ...] 添加指定元素到 HyperLogLog 中。 |
2 | PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。 |
3 | PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog |