不重复的元素个数,可以接受误差
redis 2.8.9 版本更新了hyperloglog 数据结构,基数统计的算法
优点:占用的内存是固定的, 2^64不同元素,只需要12kb内存,如果从内存的角度考虑可以使用Hyperloglog。
应用:网页uv统计 传统的方式可以使用set保存用户id,但是会占用较大内存空间,而且比较麻烦;但是hyperloglog有0.81%的错误率,容积uv任务,可以忽略不计。
测试使用:
127.0.0.1:6379> PFADD mykey a b c d e f g h i j
(integer) 1
127.0.0.1:6379> PFCOUNT mykey
(integer) 10
127.0.0.1:6379> pfadd mykey4 a b q
(integer) 1
合并两组
127.0.0.1:6379> PFMERGE mykey3 mykey mykey4
OK
查看数量
127.0.0.1:6379> PFCOUNT mykey3
(integer) 11
image
more click me