首页 > 数据库 >redis知识之HyperLogLog.md

redis知识之HyperLogLog.md

时间:2024-11-19 14:07:13浏览次数:1  
标签:key md HyperLogLog ... redis https 基数 统计

先说明一下,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

标签:key,md,HyperLogLog,...,redis,https,基数,统计
From: https://www.cnblogs.com/cerofang/p/18554750

相关文章

  • format 命令是 Windows 操作系统中的一个命令行工具,用于格式化磁盘、分区或驱动器。格
     format|MicrosoftLearn format命令是Windows操作系统中的一个命令行工具,用于格式化磁盘、分区或驱动器。格式化过程会清除磁盘上的所有数据,并准备磁盘用于存储文件。它可以通过命令提示符(CMD)或者PowerShell来执行。format 命令的功能:清除数据:格式化磁盘会删除该......
  • Redis性能优化的18招
    前言Redis在我们的日常开发工作中,使用频率非常高,已经变成了必不可少的技术之一。Redis的使用场景也很多。比如:保存用户登录态,做限流,做分布式锁,做缓存提升数据访问速度等等。那么问题来了,Redis的性能要如何优化?为了充分发挥Redis的性能,这篇文章跟大家一起聊聊Redis性能优化的1......
  • 11.12 每日总结(Redis 如何实现数据不丢失?)
    学习时长两小时今日学习面试题:保证Redis数据不丢失实现:Redis的读写操作都是在内存中,所以Redis性能才会高,但是当Redis重启后,内存中的数据就会丢失,那为了保证内存中的数据不会丢失,Rdis实现了数据持久化的机制,这个机制会把数据存储到磁盘,这样在Redis重启就能够从磁盘中恢复原有......
  • 一篇文章入门 redis(万字长文干货!!!)
    目录1.2NoSQL分类  1.3Redis基本概念1.4发展历史1.5应用场景二、Redis安装2.1下载2.2安装3.2图形界面客户端3.3.1介绍3.3.2工程搭建3.3.2.1单例连接redis3.3.2.2使用连接池连接redis3.3.2.3Spring整合jedisPool四、数据类型4.1String类......
  • Memcached&Redis构建缓存服务器 (主从,持久化,哨兵)
    许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,......
  • S3命令行工具:s3cmd与s5cmd的实用指南
    1.前言1.1.本文背景本文主要记录的是两个S3服务的命令行工具,也就是s3cmd和s5cmd;主要解决的需求就是使用这两个工具,自动同步S3服务上的文件到本地;具体场景如下:个人博客网站(blog.jiumoz.top)所有的图片都是存储在CloudflareR2上的,因为它有不少的免费额度,包括存......
  • redis管理语句
    命令行删除slave节点./redis-cli-a1111111-h192.168.0.110-p6000--clusterdel-node192.168.0.10:600097c76add58386f7d592c774347651ec34651283c 命令行查看集群节点信息redis-cli-h192.168.0.110-p6000-a111111clusternodes创建集群./redi......
  • 【老白学 Java】休闲时刻 - 打造 CMD 战舰(三)
    休闲时刻-打造CMD战舰(三)文章来源:《HeadFirstJava》修炼感悟。上一篇,老白通过「硬编码」对战舰类的功能模块进行了简单测试。本篇的主要任务是继续完善战舰类并反复测试,其中涉及到几个新技术,师兄们如果感兴趣,请接着往下看。项目进度:列出必要的程序清单简单描......
  • 【Azure Redis】因为Redis升级引发了故障转移后的问题讨论
    问题描述AzureRedis是高可用架构,由主节点,从节点两个节点共同组成。 应用客户端连接的Redis服务器的域名,经过DNS解析为上图中LoadBalancer的IP,然后连接转发到主节点。发生故障转移(Failover)是LB后的两个Primary和Replica 节点进行了切换,这个期间没有DNS变动。对于以上情......
  • Docker部署Redis哨兵
    哨兵,英文名Sentinel,是一个分布式系统,用于对主从结构中的每一台服务器进行监控,当主节点出现故障后通过投票机制来挑选新的主节点,并且将所有的从节点连接到新的主节点上。RedisSentinel包含若干个Sentinel节点和Redis数据节点,每个Sentinel节点会对数据节点和其余Senti......