Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法

HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的

HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身

基本命令

1. Pfadd

  将所有元素参数添加到 HyperLogLog 数据结构中

   PFADD key-name  element [element ...]

  如果至少有个元素被添加返回 1, 否则返回 0

2.Pfcount

  PFCOUNT key [key ...]

  返回给定 HyperLogLog 的基数估算值

  返回给定 HyperLogLog 的基数值,如果多个 HyperLogLog 则返回基数估值之和

3.Pgmerge

  将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的

  PFMERGE dest-key key [key ...]

  返回 OK

数据集 {a,b,c,d,e,f,a}, 那么这个数据集的基数集为 {a,b,c,d,e,f}, 基数(不重复元素)为6

算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合理的范围之内

可以用于实现记录网站每天访问的独立IP数量这样的一个功能

redis 的 HyperLogLog相关推荐

  1. python 操作redis之——HyperLogLog (八)

    #coding:utf8 import redis # python 操作redis之--HyperLogLog r =redis.Redis(host="33.23.724.12190&q ...

  2. redis数据结构--hyperloglog

    redis数据结构--hyperloglog 1.业务背景介绍现存实现手法以及痛点 公司广告落地页项目的 一个统计pv,uv的需求 第一版实现方案 业务快速增长面临的痛点 2.业务场景调研,bitma ...

  3. Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解

    文章目录 Redis(十)--HyperLogLog 基数统计和 Bitmap位图场景详解 1.HyperLogLog 基数统计 2.Bitmap位图场景详解 Redis(十)--HyperLogLo ...

  4. springboot整合redis实现HyperLogLog统计文章浏览量使用过期策略完成数据库同步

    springboot整合redis实现HyperLogLog统计文章浏览量&&使用过期策略完成数据库同步 本文目录 springboot整合redis实现HyperLogLog统计文章 ...

  5. Redis应用-HyperLogLog

    如果你要统计网站的PV,你可以使用Redis计数器就好了,每来一个请求,调用一次incrby即可.但是如果要统计UV就没那么简单呢,它需要去重,当然你肯定想到了Redis中的去重的Set集合,当一个请 ...

  6. redis的HyperLogLog与布隆过滤器

    HyperLogLog与布隆过滤器都是针对大数据统计存储应用场景下的知名算法. HyperLogLog是在大数据量的情况下关于数据基数的空间复杂优化实现,而布隆过滤是在大数据量情况下关于检索一个元素是 ...

  7. redis的hyperloglog用法

    Hyperloglog 什么事基数 A{1,3,5,7,8,9} B{1,3,5,7,8} 基数:不重复的元素,可以接受误差. Redis Hyperloglog基数统计的算法,网页的UV(一个人方 ...

  8. redis用HyperLogLog计算UV

    UV:unique visitor,独立访客,数据去重 DV:distinct value,去重统计,如上面的UV. 用redis的set去重,用户多时,比如微信月活10亿,就会占用很多内存. 用Hy ...

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

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

最新文章

  1. markdown如何设置图片大小_Markdown编辑知乎文章的完全攻略
  2. cvc降噪和主动降噪_市面上的降噪耳机,物理降噪和主动降噪,你会怎么选择?...
  3. C和指针之数组编程练习8(8皇后问题)
  4. 计算机科学研究生规划,2019计算机考研备考:计算机科学与技术研究方向及复习规划...
  5. matlab 数字图像滤波,数字图像处理 (基于Matlab) 滤波
  6. C++ 空间配置器(allocator)
  7. Android Studio解决:Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed
  8. 网络蜘蛛Spider的逻辑Logic(一)
  9. 一种基于复制粘贴的cam350邮票孔拼版教程(一)
  10. 全国省市县行政区划SQL代码文件
  11. Ubuntu触摸屏校准
  12. huawei.xmind
  13. excel 中的图片删除不了怎么办
  14. JavaEE项目的三层架构
  15. 网络传输中的那些编码之-chr和hex(base16)
  16. Efficient Net
  17. linux下的lib文件
  18. 手机动态:摩托罗拉edge s pro搭载骁龙870处理器
  19. 如何给玩偶建模并让它跳个舞?
  20. verilog “function”函数一直报错解决办法

热门文章

  1. 面试官:因为这个语言,我淘汰了90%的人!!
  2. docker存储卷篇
  3. centos 7防火墙
  4. TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement.
  5. 绿色数据中心如何提高效率?
  6. vc 6.0的安装问题
  7. 使用Windows live Writer 2012发布ChinaUnix博客
  8. NSThread的使用
  9. poj 2485 Highways
  10. 使用ReaderWriterLock类实现多用户读/单用户写同步