码迷,mamicode.com
首页 > 其他好文 > 详细

Redis Hyperloglog基数统计

时间:2021-02-15 12:09:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:容错   算法   添加   就会   redis   ima   保存   网页   int   

基数:不重复的元素

Redis  Hyperloglog:用于做基数统计的算法

优点:占用的内容是固定的,2^64不同的元素的技术,只需要占用12kb内存!如果要从内存角度来比较的话Hyperloglog首选。

hyper log log命令以"pf"开头。

1.利用pfadd命令添加

127.0.0.1:6379> pfadd mykey a b c d e f g h i j
(integer) 1
127.0.0.1:6379>   

技术图片

 

 2.利用pfcount 命令统计元素的基数数量

127.0.0.1:6379> pfcount mykey
(integer) 10
127.0.0.1:6379>                                                                                    

技术图片

 

 3.利用pfmerge命令合并两组,并统计并集的数量

127.0.0.1:6379> pfadd mykey2 i j z x c v b n m
(integer) 1
127.0.0.1:6379> pfmerge mykey3 mykey mykey2
OK
127.0.0.1:6379> pfcount mykey3
(integer) 15
127.0.0.1:6379>  

技术图片

应用场景:

1.网页的uv(一个人访问一个网站多次,但是还是算做一个人)

传统的方式:set(因为set不允许重复,如果重复就覆盖)保存用户的id,然后就可以统计,set中元素数量作为标准判断,这个方式如果保存大量的用户id,就会比较麻烦。我们的目的是为了计数,而不是保存用户id。

2.如果允许容错,那么一定可以使用Hyperloglog!如果不允许容错,就使用set或者自己的数据类型即可!

 

Redis Hyperloglog基数统计

标签:容错   算法   添加   就会   redis   ima   保存   网页   int   

原文地址:https://www.cnblogs.com/ckfuture/p/14397245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!