Redis中Hyperloglog和Bitmaps数据类型

Hyperloglog


什么是基数?

A{1,3,5,7,8,7}

A{1,3,5,7,8}

基数(不重复的元素的个数) = 5 ,可以接受误差!

Redis Hyperloglog 基数统计的算法!

pfadd key element … 给key中添加元素

pfcount key 计算key中有多少个不重复的元素(基数)

pfmerge destination key1 key2 :将多个key合并到destination(目标)中,如果有重复的只会添加一次重复的数据!

127.0.0.1:6379> PFADD myset a b c d e f g h i j
(integer) 1
127.0.0.1:6379> PFCOUNT myset
(integer) 10
127.0.0.1:6379> PFADD myset2 i j k l m n
(integer) 1
127.0.0.1:6379> PFMERGE myset3 myset myset2
OK
127.0.0.1:6379> PFCOUNT myset3
(integer) 14

Bitmaps


位存储

统计用户信息,活跃,不活跃!登录、未登录!打卡,365打卡!两个状态的都可以使用Bitmaps!

Bitmaps位图,数据结构!都是操作二进制位来进行记录,就只有0和1两个状态!

setbit key offset value :给key添加周一到周日是否打卡!

0代表周一,1代表周二,以此类推,value=1代表打卡,0代表未打卡!

127.0.0.1:6379> setbit sign 0 1
(integer) 0
127.0.0.1:6379> setbit sign 1 0
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 0
(integer) 0
127.0.0.1:6379> setbit sign 4 0
(integer) 0
127.0.0.1:6379> setbit sign 5 0
(integer) 0
127.0.0.1:6379> setbit sign 6 0
(integer) 0

查看某一个是否打卡!

getbit key value :查看某一天是否打卡,打卡了返回1,没有打卡返回0!

127.0.0.1:6379> getbit sign 1
(integer) 0
127.0.0.1:6379> getbit sign 0
(integer) 1

统计操作,统计打卡的天数!

bitcount key : 统计key中value为1的个数!

127.0.0.1:6379> BITCOUNT sign
(integer) 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

毕竟尹稳健

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

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

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

打赏作者

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

抵扣说明:

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

余额充值