HLL 算法(HyperLogLog)

HyperLogLog,下面简称为HLL,它是 LogLog 算法的升级版,作用是能够提供不精确的去重计数。存在以下的特点:

代码实现较难。

能够使用极少的内存来统计巨量的数据,在 Redis 中实现的 HyperLogLog,只需要12K内存就能统计2^64个数据。

计数存在一定的误差,误差率整体较低。标准误差为 0.81% 。

误差可以被设置辅助计算因子进行降低。

特点--关键词

1.比特串

2.分桶

3:偏差修正

方法

pfadd key value,将 key 对应的一个 value 存入

pfcount key,统计 key 的 value 有多少个

应用场景

基数不大,数据量不大就用不上,会有点大材小用浪费空间

有局限性,就是只能统计基数数量,而没办法去知道具体的内容是什么

和bitmap相比,属于两种特定统计情况,简单来说,HyperLogLog 去重比 bitmap 方便很多

一般可以bitmap和hyperloglog配合使用,bitmap标识哪些用户活跃,hyperloglog计数

一般使用:

统计注册 IP 数

统计每日访问 IP 数

统计页面实时 UV 数

统计在线用户数

统计用户每天搜索不同词条的个数

发布了50 篇原创文章 · 获赞 2 · 访问量 2297

猜你喜欢

转载自blog.csdn.net/eafun_888/article/details/104714474
今日推荐