Hyperloglog
Redis 2.8.9 版本就已经更新了Hyperloglog数据结构!
Redis Hyperloglog 基数统计算法!
优点:
占用的内存事固定的,2^64不通的元素的基数,只需要花费12KB的内存!
如果从内存角度选择,Hyperloglog是首选。
例子:
网页的UV(一个人访问一个网站多次,但还是算作一个人!)
传统的方式,set保存用户的id,然后就可以用set中的元素数量作为标准判断!
这个方式如果保存了大量的用户id,就会比较麻烦!我们的目的事为了计数统计,而不是保存用户id
测试使用
pfadd 创建组
pfcount 计数
pfmerge 并集
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 mykey2 i j z x c v b n m
(integer) 1
127.0.0.1:6379> pfcount mykey2
(integer) 9
127.0.0.1:6379> pfmerge mykey3 mykey mykey2
OK
127.0.0.1:6379> pfcount mykey3
(integer) 15
如果允许容错,那么一定可以使用Hyperloglog!
如果不允许容错,就是用set或者自己的数据类型即可