用户一年的签到记录,如果用String,就要用365个key/value,比较麻烦,通过位图可以简化这个操作。
他的统计很简单:
每天记录一个位,365个位,大概 46个字节,这样可以有效节省存储空间,如果有一天想统计用户一共签到多少天,统计1 的个数即可
对于位的操作。可直接操作对应的字符串(ger/set),可以直接操作位(getbit/setbit)
## 基本操作
Redis 的基本操作可以归为两类:
### 零存整取
例如存储java字符串:
|字符|ASCII|二进制|
j 73 01001010
a
v
a
接下来存储:
### 整存领取
存进去一个字符串,但是通过位操作获取字符串。
### 统计
例如: 签到记录 0101011111
1表示签到的天,0表示未有签到的天
可以使用bitcount 直接算出1 的个数
bitcount 中可以统计的起始位置
就Java 这个字段来时 起始位置是bitcount name 0 0 这就指的是j\
bitpos 就是第一次出现1 或者 0的位置
第一个字符的 1 出现的位置
、当第二位为1是,就算着前一个字符
当第二个为0是,就不算前一个字符
bitfield k1 get u4 0