Redis案例:Bitmap的使用(统计活跃用户、用户签到)

本文介绍了如何使用Bitmap数据结构在IT系统中统计用户活跃度,通过SETBIT记录每日登录,BITCOUNT计算单日活跃用户,以及BITOP处理连续日期间的活跃用户情况。同时提及了用户签到功能的类似实现方法。

Bitmap 统计活跃用户

使用日期(精确到天)作为 key,然后用户 ID 为 offset,如果当日活跃过就设置为 1

比如

用户ID:2在20230801登录一次

SETBIT 20230801 2 1

用户ID:4在20230801登录一次

SETBIT 20230801 4 1

用户ID:2在20230802登录一次

SETBIT 20230802 2 1

01234
2023080100101
2023080200100
AND00100
OR00101

📌AND、OR表示上面的数值进行与、或运算

  1. 20230801当天的登录用户数

BITCOUNT 20230801

  1. 统计20230801-20230802间,每天都在线的用户数

BITOP AND tempdest 20230801 20230802

BITCOUNT tempdest

  1. 统计202308-20230802间,登录过系统的用户数

BITOP OR tempdest 20230801 20230802

BITCOUNT tempdest

用户签到案例

每个用户创建一个位图的键,以某一天为基础,之后的天数距离这一天的天数为偏移量,
如果用户点击了签到,则设置对用的偏移位为1,原理同上

用户ID0(1号)1(2号)2(3号)3(4号)4(5号)
200101
300100
AND00100
OR00101
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值