帮助理解HyperLogLog算法

作者:ScroogeACarol
时间:内容于2020.11.24经检验生效

在学习HyperLogLog算法的时候在网上翻阅了大量帖子,这些帖子在许多地方没能写通透,本人几经波折,才弄懂这个算法原理。为帮助后人理解HyperLogLog,我用自己的语言,尽可能写一篇易于理解的帖子。本文所写的HyperLogLog算法为Redis中使用的,实际该算法可以根据自己的需要进行调整,思路上大同小异。

1、介绍HyperLogLog

HyperLogLog的价值

首先由一个问题来引出:
假设我们需要统计一个网页一天被访问多少次,这很简单,每被访问一次,计数器加1就行了。但如果需要你统计一个网页一天有多少个用户访问,这要如何实现呢?注意,一个用户重复访问多次,仍然只算一次。
对于一般思路,是对每个访问的用户进行标识,当这个用户二次访问的时候,计数器不变就行了。
这是最精确的统计方法,但是我们需要开辟一个空间用以标识所有到访的用户。如果到访的用户量很大很大,这个空间也将很大很大。
假设我们统计的不是用户,而是别的什么东西,统计量达到了2^64数量级,那么相应的,我们或许要开辟100M的空间才能精确地统计。
而实际上,面对海量的数据,我们需要的往往并不是一个精确的值,而是一个估计值。对我们来说,今天统计出1000个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值