redis HyperLogLog

2023-10-27

1、概述

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

2、常用命令

PFADD key field1 field2 [feild ...]:添加指定元素到 HyperLogLog 中。

PFADD key field1 field2 [field ...]:返回给定 HyperLogLog 的基数估算值。

PFMERGE destkey sourcekey [sourcekey ...]:将多个 HyperLogLog 合并为一个 HyperLogLog

3、命令使用

127.0.0.1:6379> pfadd m1 1 2 3 4 5 6 7 8
(integer) 1
127.0.0.1:6379> pfcount m1
(integer) 8
127.0.0.1:6379> pfadd m2 2 3 4 5 6
(integer) 1
127.0.0.1:6379> pfcount m2
(integer) 5
127.0.0.1:6379> pfmerge m3 m1 m2
OK
127.0.0.1:6379> pfcount m3

4、使用场景

基数不大,数据量不大就用不上,会有点大材小用浪费空间,有局限性,就是只能统计基数数量,而没办法去知道具体的内容是什么,和bitmap相比,属于两种特定统计情况,简单来说,HyperLogLog 去重比 bitmap 方便很多,一般可以bitmap和hyperloglog配合使用,bitmap标识哪些用户活跃,hyperloglog计数一般使用:统计注册 IP 数,统计每日访问 IP 数、统计页面实时 UV 数、统计在线用户数、统计用户每天搜索不同词条的个数。

5、注意

UV(Unique visitor) 是指通过互联网访问、浏览这个网页的自然人。访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。 一天内同个访客多次访问仅计算一个UV。 
IP(Internet Protocol) 独立IP是指访问过某站点的IP总数,以用户的IP地址作为统计依据。00:00-24:00内相同IP地址之被计算一次。 
UV与IP区别: 如:你和你的家人用各自的账号在同一台电脑上登录新浪微博,则IP数+1,UV数+2。由于使用的是同一台电脑,所以IP不变,但使用的不同账号,所以UV+2
PV(Page View) 即页面浏览量或点击量,用户每1次对网站中的每个网页访问均被记录1个PV。用户对同一页面的多次访问,访问量累计,用以衡量网站用户访问的网页数量。
VV(Visit View) 用以统计所有访客1天内访问网站的次数。当访客完成所有浏览并最终关掉该网站的所有页面时便完成了一次访问,同一访客1天内可能有多次访问行为,访问次数累计。
PV与VV区别: 如:你今天10点钟打开了百度,访问了它的三个页面;11点钟又打开了百度,访问了它的两个页面,则PV数+5,VV数+2. PV是指页面的浏览次数,VV是指你访问网站的次数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis HyperLogLog 的相关文章

随机推荐

  • gridcontrol选中多行数据进行复制_奇技淫巧:在 ssh 里面把服务器的文本复制到本地电脑...

    点击上方 Python编程时光 选择 加为星标 第一时间关注Python技术干货 2020年 力度最大的购书优惠 千万别错过了 使用 macOS 的同学 应该熟悉一个命令pbcopy 它可以在命令行中把一段内容写入到剪贴板 例如 echo
  • Java安装配置教程,2023年最新版,全部版本看这一篇就够了!!

    JDK新手无脑安装配置教程 JDK下载网址 ps 如果你的JDK版本在官网没有找到 可以通过第三方资源进行下载 下载安装配置教程是通用的 官方链接 gt https www oracle com java technologies java
  • 关于ViewGroup$ViewLocationHolder$mRoot的内存泄漏

    今儿遇到个场景 在Android P API 28 中 在退出了含有RecyclerView的RelativeLayout中 LeakCanary报了这么一个内存泄漏 1 定位问题 1 1 定位源码 在AndroidP中ViewGroup内
  • 初探计算机网络代理

    初探计算机网络代理 文章目录 初探计算机网络代理 什么是计算机网络代理 代理的类型有哪些 正向代理 反向代理 正向代理的实现原理是什么 普通代理 隧道代理 SOCKS 协议 反向代理的实现原理是什么 都有哪些代理产品 TL DR 这篇文章介
  • CH8-多线程

    案例8 1 龟兔赛跑 案例介绍 1 任务描述 众所周知的 龟兔赛跑 故事 兔子因为太过自信 比赛中途休息而导致乌龟赢得了比赛 本案例要求编写一个程序模拟龟兔赛跑 乌龟的速度为1米 1500毫秒 兔子的速度为5米 500毫秒 等兔子跑到第70
  • Prometheus在kubernetes集群的搭建教程

    Prometheus在kubernetes集群的搭建 一 Prometheus介绍 1 Prometheus简介 2 Prometheus介绍 3 Prometheus与市面的监控系统区别 4 Prometheus特点 5 Promethe
  • 21.QT-QTreeWidget,QTabWidget

    QTreeWidget树形列表 设置标签相关函数 void QTreeWidget setHeaderItem QTreeWidgetItem item void QTreeWidget setHeaderLabel constQStrin
  • 论文笔记:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    目录 文章摘要 1 Neural Radiance Field Scene Representation 基于神经辐射场的场景表示 2 Volume Rendering with Radiance Fields 基于辐射场的体素渲染 2 1
  • 奇异值分解 (SVD)原理及python实现

    奇异值分解 Singular Value Decomposition SVD 是一种矩阵分解 Matrix Decomposition 的方法 除此之外 矩阵分解还有很多方法 例如特征分解 Eigendecomposition LU分解 L
  • Linux Kernel编译流程 (二)

    1 vmlinux 研究vmlinux文件的产生 zImage和Image产生 Linux Kernel 4 18 20 Source Insight 3 5 Ubuntu 18 04 arm linux gnueabi xxx 1 1 f
  • 油盐微服务——服务容错保护Hystrix

    文章目录 引入Hystrix 由于网络问题或者依赖服务自身的问题出现的调用故障或者延迟 如果此时调用方请求不断增加 就会形成任务积压 最终导致自身服务的瘫痪 比如在一个电商网站中 可能会讲系统拆分成为用户 订单 库存 积分 评论等一系列服务
  • svn 撤销已经add的文件

    在svn add了某文件之后 发现某个文件不需要被修改 这时候可以使用revert命令来撤销add操作 svn revert 文件路径 如果需要将之前add的内容都撤销掉的话 一个文件或者一个文件夹来revert就会有点慢 这时候直接使用r
  • 小程序官方tabbar和自定义tabbar

    uniapp官方tabbar 打开项目中的 pages json 文件 在 JSON 对象中添加一个名为 tabBar 的字段 并设置其值为一个对象 在 tabBar 对象中 配置 color 和 selectedColor 字段来定义 T
  • moveToThread的经历

    moveToThread的前后QOBJECT的对象所依赖的线程会发生变化 即对象更该到设置的线程中去 如果对象里有QOBJECT成员 且没有父子关系 则这些成员仍然依赖于创建它的线程
  • python读取键盘输入模块-python 模拟键盘输入

    一 PyUserInput安装 python3 5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中 在python3 5中 直接安装PyUserInput模块即可 PyUserInput模块安装前需要安装py
  • 2023年第七届航空航天、机械与机电工程国际会议(CAMME 2023)会议日期:2023-2-18 至 2023-2-20

    会议简介 2023年第七届航空航天 机械与机电工程国际会议 CAMME 2023 重要信息 会议网址 www camme org 会议时间 2023年2月18 20日 召开地点 中国广州 截稿时间 2023年12月30日 录用通知 投稿后2
  • LCD显示的一些基本概念

    参考文章 LCD的一些基本概念 添加链接描述 知识点 水平消隐 Hblank 电子枪从左到右画出像素 他每次只能画一条扫描线 画之前要先回到左边并做好画下一条扫面线的准备 这之间有一段时间叫做水平消隐 垂直消隐 VBlank 在画完全部的的
  • 【Java面试题汇总】JVM篇(2023版)

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 目录 1 说说你了解的JVM内存模型 2 简单说下你对JVM的了解 3
  • 配置Spring数据源c3p0与dbcp

    不管通过何种持久化技术 都必须通过数据连接访问数据库 在Spring中 数据连接是通过数据源获得的 在以往的应用中 数据源一般是Web应用服务器提供的 在Spring中 你不但可以通过JNDI获取应用服务器的数据源 也可以直接在Spring
  • redis HyperLogLog

    1 概述 Redis 在 2 8 9 版本添加了 HyperLogLog 结构 Redis HyperLogLog 是用来做基数统计的算法 HyperLogLog 的优点是 在输入元素的数量或者体积非常非常大时 计算基数所需的空间总是固定