redis知识之HyperLogLog.md

news/2024/11/19 14:22:29/文章来源:https://www.cnblogs.com/cerofang/p/18554750

先说明一下,HyperLogLog是一种算法,并不是由redis创造了它。

Redis 在 2.8.9 版本添加了 HyperLogLog 结构(简介HLL),用于做基数统计,其使用算法HyperLogLog使得在数量级特别大的情况下占用空间很小。说白了就是在大数据量级的情况下能够在很小的空间中进行元素去重统计。如果使用我们平常的数据结构比如set,HashMap,等,虽然也可以实现去重统计的工作,但是当数据量上升到一定级别之后,其占用的空间也是非常的大。

需要注意的是HyperLogLog算法的去重计数方案并不精确,当然不是特别不精确,标准误差只有0.81%

当然HyperLogLog虽说占据空间小,但也不是不占空间,它需要占据一定12k存储空间,所以如果我们的统计量可能比较小,使用HyperLogLog可能就是大材小用了,但是如果百万级、千万级,那节省的空间就大的大了去了。

基数:我理解就是一个数据集中不重复的元素个数。

一、基本命令

1)添加指定元素到 HyperLogLog 中

PFADD key element [element ...]

2)返回给定 HyperLogLog 的基数估算值。

PFCOUNT key [key ...]

若填写多个key,则返回每个key对应HyperLogLog的基数估值之和。

3)将多个 HyperLogLog 合并为一个 HyperLogLog

PFMERGE destkey sourcekey [sourcekey ...]

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

二、使用场景

1.统计UV,PV。

UV(Unique visitor):是指从00:00-24:00内相同的客户端的单次或者多次访问标记为一次访问。
PV(Page View):即页面浏览量或点击量,相同客户端的每次访问都会使得统计量+1.

关于UV和PV的解释https://www.zhihu.com/question/20448467

2.统计在线用户数量

三、HyperLogLog实现原理

四、参考链接

https://juejin.im/post/5c7900bf518825407c7eafd0#heading-1

https://blog.csdn.net/weixin_42627385/article/details/140930667

http://content.research.neustar.biz/blog/hll.html

https://developer.volcengine.com/articles/7065609735982022664

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836804.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

罐笼乘坐人员超限识别智慧矿山一体机斜井人员进出识别应用场景综述

在矿山行业中,安全始终是最重要的议题之一。随着工业4.0和智能化技术的发展,智慧矿山一体机应运而生,它不仅是一款设备,更是一个全面的解决方案,旨在通过智能化手段提升矿山的安全监管水平。本文将详细介绍斜井人员进出识别智慧矿山一体机的功能特点、技术优势以及在不同矿…

码元和码点的区别

charCodeAt与codePointAt的用法: 相同点:charCodeAt与codePointAt都是字符串实例上的方法,用途都是用来返回指定索引位字符的Unicode编码。不同点:charCodeAt与codePointAt匹配索引位的规则不一样。charCodeAt是根据码元来匹配,codePointAt是根据码点来进行匹配的。先举个…

CMDB平台(进阶篇):CMDB的构建指南(二)

CMDB(配置管理数据库)作为IT服务管理中的重要组成部分,其构建过程需要严谨且细致的规划。在CMDB的构建过程中,定义需求和创建IT服务模型蓝图是两个至关重要的阶段。本文将详细探讨这两个阶段,为CMDB的构建提供实用指南。 定义需求 定义需求是CMDB构建的首要步骤,其核心在…

Transformer Concept Exploration and Practice in Pytorch

This post explores the principles about the impressive transformer structure and for downstream tasks, such as machine translate, it achieves the full implementation and training details.Introduction Transformer 是一种广泛应用与自然语言处理的神经网络架构,…

PN-RT中的一些基础概念

以太网帧和时间直接的关系我们通常的描述的1Gbps/100Mbps/1000Mbps是什么意思:bps就是bit per second的意思,表示每秒支持多少个bit的传输速率。1Gbps就是某一个网卡最大支持用1G bit每秒的速率发送/接收bit流。1Gbps = 1 x 10^9 bit per second 1Mbps = 1 x 10^6 bit per se…

校园防欺凌预警系统 学生打架智能识别系统

校园防欺凌预警系统 学生打架智能识别系统在校园的卫生间、宿舍等容易发生欺凌行为的场所,安装AI语音防欺凌报警系统是十分必要的。校园防欺凌预警系统 学生打架智能识别系统能够实时监听周围的声音,一旦检测到异常求救关键词,系统会立即启动报警程序。系统会立刻将警情传送…

NSSM封装Windows服务工具的使用与介绍

NSSM 是一个服务封装程序,它可以将普通 exe 程序 或 Java程序 或 Nodejs 项目封装成服务,像 windows 服务一样运行。同类型的工具还有微软自己的 srvany,不过 NSSM 更加简单易用,并且功能强大。它的特点如下: 支持普通 exe 程序(控制台程序或者带界面的 Windows 程序都可…

AI 实战篇:Spring-AI再更新!细细讲下Advisors

在2024年10月8日,Spring AI再次进行了更新,尽管当前版本仍为非稳定版本(1.0.0-M3),但博主将持续关注这些动态,并从流行的智能体视角深入解析其技术底层。目前,Spring AI仍处于小众状态,尚未经过开源社区多年的维护和稳定化过程,这与已经较为成熟的Spring框架形成鲜明对…

充电桩车位长时间占用识别系统

充电桩车位长时间占用识别系统利用充电站现场装好的监控摄像头, 充电桩车位长时间占用识别系统24小时对监控区域内的车位进行实时监测。当检测到燃油车占用充电桩车位,并且停车时长超过指定时间时将产生报警,并自动识别车牌号。一旦系统产生报警,它将识别车牌号,并将报警信…

接口控制器层(Controller层)设计(网文)

在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台Controller接口,或者提供Controller接口给第三方平台调用。 那么问题来了,如果设计一个优雅的Controller接口,能够满足:安全性、可重复调用、稳定性、好定位问题等多方面需求? 今天跟大家一起聊聊设计…

橙啦视频课件课程下载工具,如何在电脑端下载橙啦视频课程课件资料PDF,PPT到本地?

一. 安装橙啦课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/orangevip_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止下…

.NET +Vue 开发的高级报表工具

前言 本文介绍一款基于 .NET 6 开发的高级报表工具。该工具支持多种数据源(如数据库、Excel 文件、API 服务等),并具备强大的数据处理和可视化功能。通过内置的集合函数和类 Excel 界面,用户可以轻松设计和生成复杂的报表,满足各类业务需求。 项目介绍 CellReport 是一款专…