Redis—神奇的HyperLoglog解决统计问题

HyperLogLog是一种用于近似计算大型集合中唯一元素数量的算法,由Flajolet等人在2007年提出。它常被称作一种数据结构,因为其实现需要特定的数据结构。基数统计在互联网场景中尤为重要,例如统计网站的独立访客(UV)。了解HyperLogLog的工作原理,可以参考在线动态演示网站。
摘要由CSDN通过智能技术生成

9a8a6c9eafb1474ff1b11c78e422353c.png

若有收获,请记得分享和转发哦

一、HyperLogLog 简介

HyperLogLog 是最早由 Flajolet 及其同事在 2007 年提出的一种 估算基数的近似最优算法。但跟原版论文不同的是,好像很多书包括 Redis 作者都把它称为一种 新的数据结构(new datastruct) (算法实现确实需要一种特定的数据结构来实现)

关于基数统计

基数统计(Cardinality Counting) 通常是用来统计一个集合中不重复的元素个数。

思考这样的一个场景: 如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站上每个网页的 UV(独立访客,每个用户每天只记录一次),然后让你来开发这个统计模块,你会如何实现?

84d4a3948587e6c7b87dc0f47815b52f.png

a03786821c0d8db0220e161c15f51941.png

c9ee73cd601661a13c6dd57e560c1f8e.png

cc21c004a7b2d4c504a2c6851650af3e.png

8817a238bc9fa50a8e6f08e9ba952198.png

695ddd627e9806e150150b4dd75bfb7f.png

9d3b44fef58b8dc27c4e02ef5350b5a8.png

da0b8d334b20562ce10c9b1ba34c9749.png

e0bdb88c8ff8994b5537432075a27792.png

dc969169db6dbbcea2bf928903886623.png

00a7780cc7d9a5cecb4cae3f45070b62.png

a0c5efefa7860f6efff600dc534354dc.png

7a71851df99d1aefeaffeca8771a8af3.png

dfe70f6343c91a8673135ec3164da814.png

有一个神奇的网站,可以动态地让你观察到 HyperLogLog 的算法到底是怎么执行的:http://content.research.neustar.biz/blog/hll.html

0227267d798f3c3409083aa7439bea38.png

e8b7ad4ff5e912150333083f36a359d2.png

dddf9b058a6e029acd76e823b4afbf27.png

9f4fed5890cd666522ea09809597217d.png

f4bdf2fa5b3a2fe286510e37198e764a.png

07acd15a0272bf3df91cac1e447df53c.png

b90a754e0dd740e7000599c7f61f53c4.png

c8eec6738f28e83893340dec7bd6e296.png

c764e2cee3e9ac19561d4e74a9548726.png

a4cfa411ae3466f0da4e07fb6a5bc51d.png

49a95efd6b7c3267a3bd66948c688665.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值