什么是基数

A{1,3,5,7,8,7}

B{1,3,5,7,8}

基数(不重复的元素的数量 ) = 5 ,可以接受误差

简介

Redis2.8.9版本更新了Hyperloglog数据结构

Hyperloglog 基数统计的算法

优点:占用内存是固定的,2的64次方不同的元素的数据,只需要费12kb内存

如果从内存角度,推荐使用Hyperloglog

网页的UV(一个人访问一个网站多次,但是还是算作一个人)

传统的方式 , set 保存用户的id,然后就可以统计set中的元素数量作为标准判断

这个方式如果保存大量的用户id,就会比较麻烦,我们的目的为了计数,而不是保存用户id

测试使用

127.0.0.1:6379> pfadd mykey a b c d e f g h i j # 创建第一组元素 mykey
(integer) 1
127.0.0.1:6379> PFCOUNT mykey # 统计mykey元素基数的数量
(integer) 10
127.0.0.1:6379> pfadd mykey2 i j z x c v b n m # 创建第一组元素 mykey2
(integer) 1
127.0.0.1:6379> PFCOUNT mykey2
(integer) 9
127.0.0.1:6379> PFMERGE mykey3 mykey mykey2 # 合并两组 mykey mykey2 => mykey3 并集
OK
127.0.0.1:6379> PFCOUNT mykey3 # 查看并集的数量
(integer) 15
最后修改:2021 年 03 月 07 日
如果觉得我的文章对你有用,请随意赞赏