背景
项目开发过程中,我们经常会使用boolean类型来存储数据。例如记录用户每天签到,签到了是1,没签则为0,如果我们需要统计一年内的签到数,如果采用String来存储,需要每个用户都要记录 365次,当用户数量非常大时,需要的存储空间非常巨大。为了解决这个问题,Redis提供了位图数据结构来解决此问题。
简介
bitmap简称位图,是由多个二进制位组成的数组,数组中的每个二进制位都有与之对应的偏移量,可以通过这些偏移量对位图中指定的一个或多个二进制位进行操作。
数据结构
说明:位图也可以看作一个字节数组,索引序号代表对应的值,bitmap默认值都为0
基础命令
setbit 设置二进制位的值
基本语法
setbit key offset value
注意:设置bit值时,其中offset的值不能为负数,否则会报ERR bit offset is not integer or out of range错误。
示例说明
将位图mbit设置为:10010100
#设置第一个位置为1
setbit mbit 0 1
#设置第四