【Redis】特殊数据类型 - bitmap (位图)

bitmap数据结构,是基于二进制位来进行操作记录的,只有0 和 1两个状态。
可以想象成一个数组,里面只有0或者1。

能干嘛呢?

现实中会有这些场景,比如统计用户信息,活跃用户和非活跃用户、登录的、未登录的用户,打卡的、未打卡的,像这种只有2个状态,并且数据量非常大的,就适合使用bitmap。

网上找了一个对比,可以帮助记忆下bitmap的优点。

一、setbit

设置或者清空key的value(字符串)在offset处的bit值。

那个位置的bit要么被设置,要么被清空,这个由value(只能是0或者1)来决定。当key不存在的时候,就创建一个新的字符串value。

比如现在我设置一个用户的7天的打卡信息,1是打卡,0是未打卡。

setbit sign 0 1
setbit sign 1 1
setbit sign 3 1
setbit sign 4 0
setbit sign 5 1
setbit sign 6 0
setbit sign 2 1

二、getbit

对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

getbit sign 4

三、bitcount

统计字符串被设置为1的bit数。

不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。

bitcount sign

posted @   把苹果咬哭的测试笔记  阅读(352)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示