JAVA全系列 教程
3762个小节阅读:7088.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
在我们做站点流量统计的时候一般会统计页面UV(独立访客:unique visitor)和PV(即页面浏览量:page view)。redis HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是:在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且使很小的。
比如数据集{1,3,5,7,5,7,8},那么这个数据集的基数集为{1,3,5,7,8},基数(不重复元素)为5.基数估计就是在误差可接受的范围内,快速计算基数。
将所有元素参数添加到 Hyperloglog 数据结构中。
语法结构:
xxxxxxxxxx
pfadd key element1 element2……
示例:
如果至少有个元素被添加返回 1, 否则返回 0。
xxxxxxxxxx
pfadd book1 uid1 uid2 uid3
注意:
添加元素到HyperLogLog中,如果内部有变动返回1,没有返回0。
计算Hyperloglog 近似基数,可以计算多个Hyperloglog ,统计基数总数。
语法结构:
xxxxxxxxxx
pfcount key1 key2……
示例:
xxxxxxxxxx
pfcount book1 #计算book1的基数,结果为3
pfadd book2 uid3 uid4 #添加两个元素到book2中
pfcount book1 book2 #统计两个key的基数总数,结果为5
将一个或多个Hyperloglog(sourcekey1) 合并成一个Hyperloglog (destkey )。
语法结构:
xxxxxxxxxx
pfmerge destkey sourcekey1 sourcekey2……
示例:
比如每月活跃用户可用每天活跃用户合并后计算。
xxxxxxxxxx
#将book1和book2合并成book,结果为5
pfmerge book book1 book2
基数不大,数据量不大就用不上,会有点大材小用浪费空间,有局限性,就是只能统计基数数量,而没办法去知道具体的内容是什么,和bitmap相比,属于两种特定统计情况,简单来说,HyperLogLog 去重比 bitmaps 方便很多,一般可以bitmap和hyperloglog配合使用,bitmap标识哪些用户活跃。
1.Redis HyperLogLog 是用来做____的算法。
A 统计计算
B 分类
C 聚合统计
D 统计基数
1=>D