标签:block 重复 允许 影响 lazy red bsp 实现 count
hyperloglog主要用来做计数统计,采用了一种基数统计的算法来实现。其中不存在重复值。
例如网页的浏览量,微信文章的阅读量,同一个用户浏览同一个页面,只记录一次浏览次数即可。传统的做法是用一个set集合保存用户的id信息,这样带来的问题是随着访问次数的增多,这个set集合的内存会很大,影响运行效率。
而用redis的hyperloglog 可以存放 2^64 个不同的用户id数据,占用的内存大小是固定的,仅12K。很简单方便就实现了计数的功能。
官方说他会有0.81%的错误率,但可忽略不计
如果允许容错,那一定可以使用hyperloglog
如果不允许容错,则不能用这个,还是用set或者自己的数据类型
主要的命令有三个:
pfadd hll a b c a #增加hll 其中的成员为 a b c,成功则返回1
pcount hll #返回hll中的成员数量
pfmerge hll3 hll2 hll #合并hll 和hll2到 hll3
标签:block 重复 允许 影响 lazy red bsp 实现 count
原文地址:https://www.cnblogs.com/gslgb/p/13412946.html