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. Oracle Goldengate Windows平台Oracle-Oracle单向复制
  2. CCF发布2020-2021中国计算机科学技术发展报告
  3. Linux下用来获取各种系统信息的C++类
  4. 你了解机房保温棉的使用和作用吗?
  5. 企业级监控工具Cacti安装配置全过程
  6. 转Delphi中Create(nil),Create(self),Create(Application)区别
  7. dbms_random.seed
  8. 如何使用 Spring 对数据库进行 CURD?
  9. 生成drl文件_Allegro生成Gerber文件的方法
  10. GB28181协议之设备录像查询
  11. Unity - 射线检测
  12. 关系模型中的3中关系(一对一,一对多,多对多)
  13. Oracle 12c:配置em,解决em登录问题
  14. leetcode 717. 1比特与2比特字符(python)
  15. 高阶导数的运算法则 与 莱布尼茨公式
  16. excel删除无尽空白行_如何在EXCEL中隔行插入空行与批量删除空行
  17. 【实战项目惜时App需求分析说明书】Vue-cli3+Vant UI+Vue-element-admin+Egg.js+Mysql
  18. 企业邮箱登录入口,邮箱登陆登录入口有哪些?
  19. java long型数据做余数运算_Java数据类型与运算符
  20. 每天3.2亿人在刷抖音,而那些优秀的人却看这公众号的精华文章!

热门文章

  1. 别和 Python 说再见了!!
  2. 大厂技术资料:Redis+Nginx+Spring全家桶+Dubbo精选
  3. lambda函数详解
  4. pygame 笔记-8 背景音乐子弹音效
  5. 中兴智能视觉大数据报:要注意,人工智能将衍生更多工作机会
  6. Linux IPv6 地址配置
  7. shell--特殊位置参数变量及常用内置变量
  8. AngularJS中使用HTML5摄像头拍照
  9. 终于完成需求模块开发了,jQuery实现的效果,PHP操作数据库
  10. COZMO机器人的部分表情说明