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 添加元素 查询数量 合并元素
代码语言:javascript复制# 添加元素 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
注意,没有删除元素
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!