侧边栏壁纸
博主头像
再见理想博主等级

只争朝夕,不负韶华

  • 累计撰写 112 篇文章
  • 累计创建 64 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Redis数据类型 - HyperLogLog

再见理想
2022-05-27 / 0 评论 / 0 点赞 / 292 阅读 / 403 字

一,简介

HyperLoglog 是 redis 新支持的两种类型中的另外一种(上一种是位图类型 Bitmaps )。主要适用场景是海量数据的计算。特点是速度快,占用空间小。

同样是用于计算,HyperLoglog 在适用场景方面与 Bitmaps 方面有什么不同呢。 Bitmaps 更适合用于验证的大数据,比如签到,记录某用户是不是当天进行了签到,签到了多少天的时候。也就是说,不光需要记录数据,还需要对数据进行验证的时候使用BitmapsHyperLoglog则用于只记录的时候,比如访问的uv统计。

二,原理

基数计数 (cardinality counting)通常用来统计一个集合中不重复的元素个数,例如统计某个网站的UV,或者用户搜索网站的关键词数量。

HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

三,命令

// 将除了第一个参数以外的参数存储到以第一个参数为变量名的 HyperLogLog 结构中
PFADD key element [element ...]

//返回存储在 HyperLogLog 结构体的该变量的近似基数
PFCOUNT key [key ...]

//将多个 HyperLogLog 合并(merge)为一个 HyperLogLog , 合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的可见集合(observed set)的并集
PFMERGE destkey sourcekey [sourcekey ...]
0

评论区