HyperLogLog|学习笔记

简介: 快速学习 HyperLogLog

开发者学堂课程【Redis 入门到精通(进阶篇)HyperLogLog】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13445


HyperLogLog

 

本章主要说明 HyperLogLog 的内容以及操作方法

 

一,HyperLogLog 说明及操作

1.统计独立 UV

原始方案:set

存储每个用户的 id (字符串)

改进方案:Bitmaps

全新方案HyperLogLog

2.基数

(1).基数是数据去重后元素的个数

(2).HyperLogLog 是用来做基数统计的运用了 LogLog 算法

举例解释现在就有一组数据,这组数据里边{1,3,5,7,5,7,8}。其中也稀有重复,那么整体这组数据一共是七个,但是他的基数是5,也就是说它的基数对应的集合中,要把那些所有的数据重复的去掉,最终基数就是{1,3,5,7,8}如果集合为{1,1,1,1,1,7,1}。基数即是{1,7},对应的基数较大。所谓的基数就是数据集合去重后的元素个数

此图为讲解基数的详情图可以作为举例参考

image.png

3.3.LogLog 算法

关于 LogLog 算法可以简单了解以下此下图为 LogLog 算法

image.png

4.HyperLogLog 类型的基本操作

(1).添加数据

pfadd key element[element...]

(2).统计数据

pfcount key [key

(3).合并数据

pfmerge destkey sourcekey [sourcekey...]

5.相关说明

(1).用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据

(2).核心是基数估算算法,最终数值存在一定误差

(3).误差范围:基数估计的结果是一个带有 0.81% 标准错误的近似值

(4).耗空间极小,每个 hyperloglogkey 占用了12K的内存用于标记基数

(5).pfadd 命令不是一次性分配 12K 内存使用,会随着基数的增加内存逐渐增大

(5).Pfmerge 命令合并后占用的存储空间为12K,无论合并之前数据量多少

相关文章
|
城市大脑 算法 数据可视化
数字孪生核心技术揭秘(六):传统三维gis与数字孪生的区别
当前对“数字孪生城市”没有一个严格界定的标准,本质上“数字孪生城市”是在传统三维GIS应用的基础上演化而来;随着技术创新和行业需求的发展,两者的差异也越来越大;本文梳理了两者的异同,同时比较了两者的适用场景。
5422 1
数字孪生核心技术揭秘(六):传统三维gis与数字孪生的区别
|
运维 Python
【Python】python深拷贝与浅拷贝详解(必须掌握)
【Python】python深拷贝与浅拷贝详解(必须掌握)
|
druid 关系型数据库 MySQL
【数据库】数据库连接池配置 testOnBorrow
【数据库】数据库连接池配置 testOnBorrow
1323 0
|
NoSQL Java Linux
Java Spring Data Redis实战与配置参数详解 application.properties
Java Spring Data Redis实战与配置参数详解 application.properties。Java Spring Boot 2.0连接Redis服务器,可以在配置文件 application.properties中修改控制参数,包括安全、连接池、超时等参数。
12068 0
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
355 1
|
SQL 缓存 Java
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
简化数据库访问:通过配置文件或注解的方式来定义数据库操作,减少了传统的JDBC编码工作量。 灵活性:支持自定义SQL语句,可以编写复杂的SQL语句来满足特定的需求。
666 0
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
|
人工智能 前端开发 机器人
Coze初体验——为城市创作独特的天气图景
Coze初体验——为城市创作独特的天气图景
Coze初体验——为城市创作独特的天气图景
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
370 6
|
负载均衡 算法 前端开发
Keepalived + Nginx 实现高可用 Web 负载均衡
Keepalived + Nginx 实现高可用 Web 负载均衡
Keepalived + Nginx 实现高可用 Web 负载均衡
|
关系型数据库 MySQL 分布式数据库
PolarDB操作报错合集之遇到报错“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure”,该怎么办
在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。
1811 0