Redis 位图实现签到之长时间未签到预警

#目前通行系统项目中有一个新需求【通过对通行记录数据定时分析,查询出长时间没 有刷卡/刷脸通行的学生】

#一看到通行签到相关,就想到了redis的位图,理由也有很多帖子说明了,最大优点占用空间小。

一.redis命令行

SETBIT:设置指定偏移量上的位值。语法:SETBIT <key> <offset> <value>

使用中key可以为  xxx前缀 + + 用户编号 + + yyyyMM 的格式,设置该人员在该月的签到情况。

当执行以下语句获得一个字符时

假如为2024年10月2号,则执行setbit sign:001:202410 1 1 。偏移量为 1 。

 

获取当前key的值为 @ 

使用  字符串二进制转换 得知,二进制为 0100000 ,八位数字,第二位为 1 ,代表2号签到过。

GETBIT:获取指定偏移量上的位值。语法:GETBIT <key> <offset>

BITCOUNT:统计指定键的位中设置为1的位数。语法:BITCOUNT <key> 

BITPOS:找到第一个设置为1的位。语法:BITPOS <key> <offset> 

也可以使用get / set 直接对整个位图进行设置。 

二.代码实现

1.设置指定key的位图

在项目中,使用中key可以为  xxx前缀 + :+ 用户编号 + :+ yyyyMM 的格式,设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值