作为程序员一定要保持良好的睡眠,才能好编程

四两拨千斤——Redis HyperLogLog

发布时间:2019-03-03

redis 提供了 HyperLogLog 数据结构就是用来解决这种统计问题的。

HyperLogLog 提供不精确的去重计数方案,虽然不精确但是也不是非常不精确。



HyperLogLog 提供了两个指令 pfadd 和 pfcount,根据字面意义很好理解,一个是增加计数,一个是获取计数。

pfadd 用法和 set 集合的 sadd 是一样的,来一个用户 ID,就将用户 ID 塞进去就是。

pfcount 和 scard 用法是一样的,直接获取计数值。





pfadd  看截图中的命令使用方法:


pfcount 返回这里面共计有多少个数


pfmerge







11.png


HyperLogLog 是提供不重复的技术决绝方案的,


user1 和user2 已经 存在,就放弃插入,则把user3 插入进去




pfmerge 适合什么场合用?


HyperLogLog 除了上面的 pfadd 和 pfcount 之外,还提供了第三个指令 pfmerge,用于将多个 pf 计数值累加在一起形成一个新的 pf 值。

比如在网站中我们有两个内容差不多的页面,运营说需要这两个页面的数据进行合并。其中页面的 UV 访问量也需要合并,那这个时候 pfmerge 就可以派上用场了。