10_Redis数据结构-HyperLogLog基数统计

news/2025/2/19 2:47:52/

1.HyperLogLog介绍

1.1 基本概念

Redis中的HyperLogLog是一种用于估算集合中不同元素数量(即基数)的概率数据结构。它特别适用于处理非常大的数据集,与传统的精确计数方法相比,HyperLogLog可以在消耗极少量内存的情况下提供相对准确的估计值。HyperLogLog是在Redis 2.8.9版本中新增的数据类型。

什么是基数?指一个集合中不同元素的数量。例如,集合{1, 2, 3, 3, 4}的基数是4,因为其中有4个不同的元素。在实际应用中,可能需要统计大量数据中的不同元素数量。例如,在网页访问统计中,我们可能想要知道一天内有多少不同的IP地址访问了某个页面,这就是一个典型的基数统计问题。

HyperLogLog的原理基于伯努利试验和调和平均数。它通过随机映射函数将输入元素映射到一个固定大小的位图中,然后通过位图中零位的数量来估算基数。为了减小误差率,HyperLogLog使用了多个随机映射函数和稀疏位图等技术。

Redis内部为每个HyperLogLog实例创建了2的14方个桶(bucket),每个桶占用6比特的空间。当有新元素加入时,HyperLogLog 会对元素进行哈希运算,得到一个哈希值。然后根据哈希值的二进制表示,确


http://www.ppmy.cn/news/1562901.html

相关文章

Centos集群同步文件脚本xsync

第一次使用需要安装rsync yum -y install rsync 创建执行文件 vi /usr/local/bin/xsync 执行权限 chmod ax /usr/local/bin/xsync #!/bin/bash# 获取输出参数,如果没有参数则直接返回 pcount$# if [ $pcount -eq 0 ] thenecho "no parameter find !";exit…

宝塔面板 php8.0 安装 fileinfo 拓展失败

系统:Albaba Cloud Linux release 3 (OpenAnolis Editon)即 Centos 平替 异常提示: cc: fatal error: ** signal terminated program cc1 compilation terminated. make: *** [Makefile:211: libmagic/apprentice.lo] Error 1搜…

C# 使用iText 编辑PDF

NetCore 创建、编辑PDF插入表格、图片、文字 NetCore 创建、编辑PDF插入表格、图片、文字(二) NetCore 创建、编辑PDF插入表格、图片、文字(三) 1,.net8 环境,引入 包 itext7 itext7.bouncy-castle-adapter 2,直接上代码 public class PDFEditor{public…

MySQL 16 章——变量、流程控制和游标

一、变量 在MySQL数据库的存储过程和存储函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据 在MySQL数据库中,变量分为系统变量和用户自定义变量 (1)系统变量 1.1.1系统变量分类 变量由…

同域名前后端分离项目 nginx配置实践

新项目采用前后端分离的方式开发,前后端代码打算分开部署(同机器且同域名),但打算支持后端依然可访问静态资源(nginx配置仅一份)。 搜索nginx配置大部分都通过url前缀进行转发来做前后端分离,不…

Web开发中页面出现乱码的解决(Java Web学习笔记:需在编译时用 -encoding utf-8)

目录 1 引言2 乱码表现、原因分析及解决2.1 乱码表现2.2 原因分析2.3 解决 3 总结 1 引言 Web开发的页面出现了乱码,一直不愿写出来,因为网上的解决方案太多了。但本文的所说的页面乱码问题,则是与网上的大多数解决方案不一样,使…

《框架程序设计》复习题解析-2

目录 简答题 1.在MyBatis框架中,当查询结果列名和实体类中的属性名不一致时如何配置实现自定义映射关系,请详细说明。 2.请描述在SQL映射文件中,如何自定义合适的实体类与查询结果完成映射? 3.Spring整合MyBatis时,…

【WRF运行报错】总结WRF运行时报错及解决方案(持续更新)

目录 ./real.exe错误1:ERROR while reading namelist physics./wrf.exe错误1:FATAL CALLED FROM FILE: <stdin> LINE: 2419 Warning: too many input landuse types参考./real.exe 错误1:ERROR while reading namelist physics 执行./real.exe时,报错如下: taski…