13-十三、Redis HyperLogLog 命令
引言
Redis
在 2.8.9
版本添加了 HyperLogLog
结构
Redis
HyperLogLog
是用来做基数统计的算法
HyperLogLog
的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的
每个 HyperLogLog
键只需要花费 12 KB
内存,就可以计算接近2^64
个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog
只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog
不能像集合那样,返回输入的各个元素
什么是基数?
假如我们有一个数据集 \{1, 3, 5, 7, 5, 7, 8\}
那么这个数据集的基数集为\{1, 3, 5 ,7, 8\}
, 基数 (不重复元素个数) 为5
基数估计 就是在误差可接受的范围内,快速计算基数
范例
下面的范例演示了 HyperLogLog
的工作过程
、0.0.1:6379> PFADD language "PHP"
) (integer) 1
、0.0.1:6379> PFADD language "Python"
) (integer) 1
、0.0.1:6379> PFADD language "Perl"
) (integer) 1
、0.0.1:6379> PFCOUNT language
(integer) 3
Redis HyperLogLog 命令
下表列出了 Redis HyperLogLog 命令
命令 | 描述 |
---|---|
PFADD | 添加指定元素到HyperLogLog中 |
PFCOUNT | 返回给定HyperLogLog的基数估算值 |
PFMERGE | 将多个HyperLogLog合并为一个HyperLogLog |
希望读者能够给小编留言,也可以点击[此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "此处扫下面二维码关注微信公众号")
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com