基数计数
HyperLogLog 用于估计候选集概率的数据结构。它使得用较小的空间获得近似的准确度。无论集合包含的多少个元素,HyperLogLog 总是使用非常少的内存。
基本命令
PFADD
对给定的元素进行计数,如果计数成功,返回 true;否则,返回 false。
1 | -- true |
时间复杂度:O(n)
PFCOUNT
返回 hyper 中元素的近似个数。
hyper 不存在则返回 0.
1 | -- 6 |
时间复杂度:O(n)
PFMERGE
将指定 hypers 计算出并集,并保存到 target hyper 中。
1 | PFADD alphabets1 "a" "b" "c" |
时间复杂度:O(n)
总结
- HyperLogLog 是一个基于基数的近似计算;
- HyperLogLog 无论保存多少个元素,只使用固定内存;
- PFMERGE 代替 PFCOUNT,因为 PFCOUNT 内部调用 PFMERGE 命令;
- HyperLogLog 用于计数和去重;