Redis个人学习笔记4---三种特殊数据类型之Hyperloglog

根据b站UP主狂神说Redis课程所写的个人学习笔记

视频地址:https://www.bilibili.com/video/BV1S54y1R7SB


基数(不重复的元素)


简介:

redis hyperloglog 基数统计的算法

优点:占用的内存是固定的,2^64 不同的元素的技术,只需要12kb的内存,如果从内存角度比较的话hyperloglog是首选

网页uv(一个人访问多次网站,但只算一个人)

传统方法:set保存用户id,然后就可以统计set中元素数量作为判断标准

这个方式如果保存大量用户id就会比较麻烦,我们的目的是为了计数,不是保存id

错误率在0.81%,可以忽略不计


127.0.0.1:6379> clear
127.0.0.1:6379> pfadd mykey 1 2 3 4 5 6 7 #pfadd添加元素
(integer) 1
127.0.0.1:6379> pfadd mykey2 8 9 0
(integer) 1
127.0.0.1:6379> pfcount mykey  #统计数量
(integer) 7
127.0.0.1:6379> pfcount mykey2
(integer) 3
127.0.0.1:6379> pfmerge mykey3 mykey mykey2 #合并mykey和mykey2到mykey3
OK
127.0.0.1:6379> pfcount mykey3 #查看并集的数量
(integer) 10
127.0.0.1:6379> pfadd mykey4 1 2 11
(integer) 1
127.0.0.1:6379> pfmerge mykey5 mykey mykey4
OK
127.0.0.1:6379> pfcount mykey5 #由于mykey里面有mykey4中的1和2,所以长度只有7+1 = 8
(integer) 8
 


如果允许容错,可以使用hyperloglog

不能容错则使用set或其他数据结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值