为什么要使用 HyperLogLog?

在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,该用什么的类型来统计?

如果我们使用 Redis 中的集合来统计,当它每天有数千万级别的访问时,将会是一个巨大的问题。因为这些访问量不能被清空,我们运营人员可能会随时查看这些信息,那么随着时间的推移,这些统计数据所占用的空间会越来越大,逐渐超出我们能承载最大空间。

例如,我们用 IP 来作为独立访问的判断依据,那么我们就要把每个独立 IP 进行存储,以 IP4 来计算,IP4 最多需要 15 个字节来存储信息,例如:110.110.110.110。当有一千万个独立 IP 时,所占用的空间就是 15 bit*10000000 约定于 143MB,但这只是一个页面的统计信息,假如我们有 1 万个这样的页面,那我们就需要 1T 以上的空间来存储这些数据,而且随着 IP6 的普及,这个存储数字会越来越大,那我们就不能用集合的方式来存储了,这个时候我们需要开发新的数据类型 HyperLogLog 来做这件事了。

HyperLogLog 介绍

HyperLogLog(下文简称为 HLL)是 Redis 2.8.9 版本添加的数据结构,它用于高性能的基数(去重)统计功能,它的缺点就是存在极低的误差率。

HLL 具有以下几个特点:

  • 能够使用极少的内存来统计巨量的数据,它只需要 12K 空间就能统计 2^64 的数据;
  • 统计存在一定的误差,误差率整体较低,标准误差为 0.81%;

优秀的基数统计算法——HyperLogLog相关推荐

  1. 5redis-----------redis高级--GEO-查询附近的人、基数统计算法HLL 、布隆过滤器、缓存雪崩穿透击穿-------全栈式开发44

    redis高级 一.GEO查询附近的人 二.基数统计算法-HyperLogLog 三.布隆过滤器 四.缓存雪崩&缓存穿透 (一)缓存雪崩 (二)缓存穿透 (三)缓存击穿 一.GEO查询附近的人 ...

  2. Redis修行 — 基数统计:HyperLogLog

    学 无 止 境 ,与 君 共 勉 . 简介 HyperLogLog是Redis中的高级数据结构,它主要用于对海量数据(可以统计2^64个数据)做基数统计(去重统计数量).它的特点是速度快,占用空间小( ...

  3. Redis 基数统计:HyperLogLog 小内存大用处

    https://blog.csdn.net/azhegps/article/details/71158952 我们一直都知道,redis几大常用数据结构,字符串.散列.列表.集合.有序集合.其实后来R ...

  4. Redis基数统计之HyperLogLog小内存大用处

    转载:https://blog.csdn.net/azhegps/article/details/71158952 我们一直都知道,redis几大常用数据结构,字符串.散列.列表.集合.有序集合.其实 ...

  5. 基数统计算法狗年旺旺旺

    2019独角兽企业重金招聘Python工程师标准>>> 有这样一种应用场景,在一个海量的数据集合中查看某元素是否存在,同时希望查询速度尽可能快,存储空间尽可能少,比如URL排重,比如 ...

  6. Redis(十):Redis特殊类型之Hyperloglog基数统计

    redis 2.8.9版本就更新了Hyperloglog数据结构! Hyperloglog:基数统计算法!0.81%的错误率,不过统计大量数据可以忽略! 在 Redis 里面,每个 HyperLogL ...

  7. Redis三种特殊数据类型(Geospatial地理位置详解,Hyperloglog基数统计,Bitmap位图场景详解)

    学习总结,转自[狂神说Java]Redis最新超详细版教程通俗易懂_哔哩哔哩_bilibili 1.Geospatial 地理位置 Geospatial : 使用场景 :朋友的定位,方圆几公里得人(附 ...

  8. 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解

    HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID. 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的 ...

  9. 用户日活月活怎么统计 - Redis HyperLogLog 详解

    点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP ...

最新文章

  1. python 验证码识别示例(二) 复杂验证码识别
  2. 14 类编程题解法总结
  3. python出现套接字创建不成功_python套接字协议不支持 - python
  4. ps查看oracle进程数,通过ps -ef | grep oracle查出的进程,怎样对应数据库中跑的进程...
  5. 限界分支法(实际上没有剪枝,介绍的是广度优先搜索):01背包问题,队列实现方式(FIFO)
  6. Dubbo 跨语言调用神兽:dubbo-go-pixiu
  7. P4248 [AHOI2013]差异
  8. php 系统交互 删除文件_FileSystemMap:与文件系统交互的自然方法
  9. YMP框架学习笔记(二)------基于YMP框架搭建WEB应用程序
  10. 关于用jQuery实现的checkbox全选和反选功能
  11. 《天天数学》连载21:一月二十一日
  12. JavaScript 数字前补“0”的五种方法
  13. 在线markdown文件转pdf
  14. 锤子pro2 Android8,锤子 坚果Pro2 MIUI10 Android N 快如闪电 指纹支付 完美ROOT
  15. 基于 HTML5 + WebGL 的 3D 太阳系系统
  16. 设计师Adobe国际认证证书有用吗?
  17. 【算法竞赛学习笔记】KD-Tree
  18. 此证书已在此前安装为一个证书权威机构
  19. PHP集群中SESSION共享方案之Redis
  20. IPv6网络的可操作安全考虑——RFC9099解析(一)

热门文章

  1. python 循环语句 for while range
  2. linux tips 技巧笔记二
  3. 简单类及成员实例【C#】
  4. 前端Http协议缓存初解
  5. Caffe CuDNN版本与环境不同导致make错误
  6. Epson C1100报错“Service Req E511”的处理方法
  7. 用户反馈:对 Rafy 开发框架的一些个人建议
  8. hadoop 2.5.0安装和配置
  9. percona-toolkit工具包的使用教程
  10. resize属性,使textarea在ff(火狐)中禁止拉伸