位图介绍以及基本用法
位图
1.bitmap介绍
位图不是真正的数据类型,它是定义在字符串类型中,一个字符串类型的值最多能存储512M字节的内容
那么一个字符串的位上限就是:512M=2^32bit
2.位图的一些命令
-
setbit
设置某一位上的值
语法:SETBIT key offset value (offset位偏移量,从0开始)
-
getbit
获取某一位上的值
语法:GETBIT key offset
获取到的值是ASCLL表中对应的值
-
bitpos
返回指定值0或1在指定区间上首次出现的下标
语法:BITPOS key bit [start] [end](字节索引,0表示第一个字节)
-
bitop
语法:BITOP operation destkey key [key …]
对一个或多个保存二进制位的字符串 key 进行位操作,并将结果保存到 destkey 上。operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种
BITOP AND destkey key [key …] ,对一个或多个 key 求逻与,并将结果保存到 destkey
BITOP OR destkey key [key …] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey
BITOP XOR destkey key [key …] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey
BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey
除了 NOT 操作之外,其他操作都可以接受一个或多个 key 作为输入,当 BITOP 处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作 0,空的 key 也被看作是包含 0 的字符串序列
-
bitcount
统计指定区间上值为1的个数
语法:BITCOUNT key [start] [end] start end 字节的索引 正方向
从左向右从0开始,注意官方start、end是位,测试后是字节
BITCOUNT key [start] [end] start end 字节的索引 负方向
从右向左从-1开始,注意官方start、end是位,测试后是字节