bitMap
bitmap本身使用string类型作为底层数据结构实现的一种统计二值状态的数据类型,二值就是只能是 0 1
string类型是会保存为二进制的字节数组,redis就用字节数组的每个bit位表示一个元素的二值状态,bitmap
可以看作是一个bit数组
命令
- SETBIT key offset value 说明:设置或者清空key的value(字符串)在offset处的bit值(0 或 1)
- BITOP operation destkey key [key ...] 说明:对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上,支持 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种
使用场景1: 签到统计,比如记录ID为100的用户1976年8月签到情况
//设置3号签到
127.0.0.1:6379> SETBIT user:sign:100:197608 3 1
//查看3号是否签到
127.0.0.1:6379> GETBIT user:sign:100:197608 3
//查看8月签到次数
127.0.0.1:6379> BITCOUNT user:sign:100:197608