Redis Hyperloglog 基数统计

Redis Hyperloglog是一种使用极小内存进行基数估算的算法,尤其适合统计大量唯一元素,如网页UV。它通过Pfadd、Pfcount和Pfmerge等命令实现元素添加、基数估算和合并操作。尽管存在一定的误差,但固定12KB的内存占用使其成为大数据计数场景的理想选择。
摘要由CSDN通过智能技术生成

什么是基数?

A{1,3,5,7,8,7}
B{1,3,5,7,8}
基数(一个集合中不重复的元素)= 5

Redis Hyperloglog 基数统计的算法

网页的UV(一个人访问一个网站多次,但是还算一个人)
这个方式如果保存大量的用户id,就会比较麻烦,我们的目的就是为了计数。

优点

占用的内存是固定的,2^64不同的元素的技术,只需要废12KB内存!如果内存角度Hyperloglog 为首选。

1.Pfadd 添加指定元素到 HyperLogLog 中。

添加指定元素到 HyperLogLog 中。返回值整型,如果至少有个元素被添加返回 1, 否则返回 0。

 PFADD key element1 element2......

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

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

 PFCOUNT key [key ...].

3.Pfcount 将多个 HyperLogLog 合并为一个 HyperLogLog

将多个 HyperLogLog 合并为一个 HyperLogLog

 PFMERGE  新生成的  原数据key1  原数据key2....

总结

如果允许容错,那么一定可以使用HyperLogLog
如果不允许容错就使用set 和 自定义类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小小狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值