⑥【bitmap 】Redis数据类型: bitmap [使用手册]

2023-11-26 09:09:57 浏览数 (1)

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~

⑥Redis bitmap 基本操作命令

  • 用String类型作为底层数据结构实现的一种统计二值状态(0,1)的数据类型
  • 位图本质是数组,它是基于String数据类型的按位的操作。该数组由多个二进制位组成,每个二进制位都对应一个偏移量(我们称之为一个索引)。
  • Bitmap支持的最大位数是232位,它可以极大的节约存储空间,使用512M内存就可以存储多达42.9亿的字节信息(232 = 4294967296)

常见使用场景

  • 用户是否登陆过(Y/N)
  • 电影、视频、广告等是否被点击播放过
  • 上班打卡签到
1. setbit 设置偏移量的值(值只能0和1)

setbit key offset value

代码语言:javascript复制
# bitmap的偏移量是从0开始的,值只能是0或1
# 将偏移量8的值设为1
bitmap bm1 8 1

2. getbit 获取指定偏移量的值

getbit key offset

代码语言:javascript复制
# bitmap的偏移量是从0开始的,值只能是0或1
# 获取指定偏移量的值
getbit bm1 0
getbit bm1 8

3. strlen 统计字节数占用多少

strlen key

代码语言:javascript复制
# bitmap的偏移量是从0开始的,值只能是0或1
# 按照8偏移位一组算一个byte,设置同一组偏移位,最多只会增加1的字节占用数
strlen bm1 # 查看bm1的字节占用
4. bitcount 统计全部键里面1的数量

bitcount key [start end [BYTE|BIT]]

代码语言:javascript复制
# 统计键中偏移量的值为1的个数,可以指定bit或byte的范围
bitcount bm1 # 统计所有偏移量值为1的个数
bitcount bm1 0 3 bit # 统计0至3bit范围内,偏移量值为1的数量
bitcount bm1 0 3 byte# 统计0至3byte范围内,偏移量值为1的数量(1byte相当于8bit)

0 人点赞