redis学习五-HyperLogLog使用

1 HyperLogLog简介

HyperLogLog实际类型是字符串,通过基数算法利用极小的空间来完成独立总数的统计。这种统计不是100%准确的,官方给出的是0.81%的误差。

2 常用命令

同样以用户登录在某天登录来介绍

2.1 添加

pfadd key element [element ...]
4个用户在2020-09-01这天进行登录,3个用户在2020-09-02号这天登录
127.0.0.1:6379> pfadd user:login:2020-09-01 user1 user2 user3 user4
(integer) 1
127.0.0.1:6379> pfadd user:login:2020-09-02 user3 user4 user5
(integer) 1

2.2 统计

pfcount key [key ...]
计算2020-09-01这天登录的用户数
127.0.0.1:6379> pfcount user:login:2020-09-01
(integer) 4
计算2020-09-01和2020-09-02这两天登录的用户数
127.0.0.1:6379> pfcount user:login:2020-09-01 user:login:2020-09-02
(integer) 5

2.3 合并

pfmerge destkey sourcekey [sourcekey ...]
    destkey:合并之后的key
把这两天的用户登录进行合并
127.0.0.1:6379> pfmerge user:login:2020-09-01merge2020-09-02 user:login:2020-09-01 user:login:2020-09-02
OK
127.0.0.1:6379> pfcount user:login:2020-09-01merge2020-09-02
(integer) 5

3 选型标准

只计算独立总数,不需要获取单条数据
可以容忍一定的误差,毕竟hyperloglog在内存占用上还是节省了大量空间的。《Redis开发与运维》中测试100w用户量,集合类型需要占用80M左右的内存,但是hyperloglog只需15K

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值