Redis系统学习-应用-位图

概念了解

我们日常开发过程中,要尽量简化业务模型,使用最少的内存,描述事物,程序就是通过各种数据的操作、传输,来模拟现实生活中的人与人之间的操作。从而简化生活,提升工作效率,品质。
比如某个签到活动,每周一开始,周末晚结算这周签到的天数来发送奖励。这种具有过期性的数据,并且只有个住居简单,只有个状态位,可采用redis的位图来解决。
位图是基于String上的运用,我们可以使用普通的 get/set 直接获取和设置整个位图的内容,也可以使用位图操作 getbit/setbit 等将 byte 数组看成「位数组」来处理。

涉及到的命令

在这里插入图片描述
在此基础上有另外两个命令,方便统计
在这里插入图片描述
牛牛们不会有闲心一个位一个位设置的,批量操作命令bitfield
bitfield 有三个子指令,分别是 get/set/incrby,它们都可以对指定位片段进行读写,但是最多只能处理 64 个连续的位,如果超过 64 位,就得使用多个子指令,bitfield 可以一次执行多个子指令。
在这里插入图片描述
在这里插入图片描述

剩下一个incrby,自增,这里就有个长度溢出,自增是基于当前字符的,也就是8位,有符号最大值就是127,无符号:255
在这里插入图片描述
bitfield 指令提供了溢出策略子指令 overflow,用户可以选择溢出行为,默认是折返 (wrap),还可以选择失败 (fail) 报错不执行,以及饱和截断 (sat),超过了范围就停留在最大最小值
在这里插入图片描述

项目中没有遇到过,理解不是很透彻,在项目中很难联想到这个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值