Redis支持Hyperloglog 是在2.8.9版本之后,之前的版本不支持!
再次强调:用于计算不重复元素的数量,不可打印元素
Hyperloglog 存储基数。但什么是基数?
A {1,3,5,7,9}
B {1,3,3,5,7}
其中A就是基数,B有重复元素就不是基数。
Hyperloglog在数据了很大的时候,可接受误差!一般用于网站UV,就是用户数量统计!
基数:说白了就是不重复的元素
好处
占用内存是固定的,只需要12KB内存!可存储2的64次方的元素。不管存多少个(数量在2的64次方内),都是12KB。
Hyperloglog相关命令
- PFADD :添加一个或多个元素到某个key中 参数:key 元素…
- PFCOUNT :获取某个key 或多个key 元素数量 参数:key…
- PFMERGE :合并多个分支 参数:newkey oldkey1 oldkey2 …
实验:redis-cli 添加元素 查询数量 合并元素
# 添加元素 a - k 到mykey1 (一共 11 个)
pfadd mykey1 a b c d e f g h i j k
# 统计mykey1元素数量
pfcount mykey1
# 添加元素 k - n 到mykey2 (一共 4 个)
pfadd mykey2 k l m n
# 合并mykey1、mykey2为mykey3
pfmerge mykey3 mykey1 mykey2
# 输出mykey3的数量 (因为存储的是基数形式,不会重复,故 k 只计算一次)
pfcount mykey3
注意,没有删除元素

特殊说明:
以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!