redis 的 HyperLogLog
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相关推荐
- python 操作redis之——HyperLogLog (八)
#coding:utf8 import redis # python 操作redis之--HyperLogLog r =redis.Redis(host="33.23.724.12190&q ...
- redis数据结构--hyperloglog
redis数据结构--hyperloglog 1.业务背景介绍现存实现手法以及痛点 公司广告落地页项目的 一个统计pv,uv的需求 第一版实现方案 业务快速增长面临的痛点 2.业务场景调研,bitma ...
- Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解
文章目录 Redis(十)--HyperLogLog 基数统计和 Bitmap位图场景详解 1.HyperLogLog 基数统计 2.Bitmap位图场景详解 Redis(十)--HyperLogLo ...
- springboot整合redis实现HyperLogLog统计文章浏览量使用过期策略完成数据库同步
springboot整合redis实现HyperLogLog统计文章浏览量&&使用过期策略完成数据库同步 本文目录 springboot整合redis实现HyperLogLog统计文章 ...
- Redis应用-HyperLogLog
如果你要统计网站的PV,你可以使用Redis计数器就好了,每来一个请求,调用一次incrby即可.但是如果要统计UV就没那么简单呢,它需要去重,当然你肯定想到了Redis中的去重的Set集合,当一个请 ...
- redis的HyperLogLog与布隆过滤器
HyperLogLog与布隆过滤器都是针对大数据统计存储应用场景下的知名算法. HyperLogLog是在大数据量的情况下关于数据基数的空间复杂优化实现,而布隆过滤是在大数据量情况下关于检索一个元素是 ...
- redis的hyperloglog用法
Hyperloglog 什么事基数 A{1,3,5,7,8,9} B{1,3,5,7,8} 基数:不重复的元素,可以接受误差. Redis Hyperloglog基数统计的算法,网页的UV(一个人方 ...
- redis用HyperLogLog计算UV
UV:unique visitor,独立访客,数据去重 DV:distinct value,去重统计,如上面的UV. 用redis的set去重,用户多时,比如微信月活10亿,就会占用很多内存. 用Hy ...
- 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解
HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID. 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的 ...
最新文章
- Oracle Goldengate Windows平台Oracle-Oracle单向复制
- CCF发布2020-2021中国计算机科学技术发展报告
- Linux下用来获取各种系统信息的C++类
- 你了解机房保温棉的使用和作用吗?
- 企业级监控工具Cacti安装配置全过程
- 转Delphi中Create(nil),Create(self),Create(Application)区别
- dbms_random.seed
- 如何使用 Spring 对数据库进行 CURD?
- 生成drl文件_Allegro生成Gerber文件的方法
- GB28181协议之设备录像查询
- Unity - 射线检测
- 关系模型中的3中关系(一对一,一对多,多对多)
- Oracle 12c:配置em,解决em登录问题
- leetcode 717. 1比特与2比特字符(python)
- 高阶导数的运算法则 与 莱布尼茨公式
- excel删除无尽空白行_如何在EXCEL中隔行插入空行与批量删除空行
- 【实战项目惜时App需求分析说明书】Vue-cli3+Vant UI+Vue-element-admin+Egg.js+Mysql
- 企业邮箱登录入口,邮箱登陆登录入口有哪些?
- java long型数据做余数运算_Java数据类型与运算符
- 每天3.2亿人在刷抖音,而那些优秀的人却看这公众号的精华文章!