redis字符串类型键的二进制操作
- 命令名称:setbit
- 语法:setbit key offset value
- 功能:
- 1)对key所存储的字符串值,设置或清除指定偏移量上的位(bit),位的设置或清除取决于value参数,可以是0也可以是1。
- 2)字符串会进行伸展(grown)以确保它可以将value保存在指定的偏移量上。当字符串值进行伸展时,空白位置以0填充。offset参数必须大于或等于0,小于2^32(bit映射被限制在512MB之内)
- 返回值:
- 1)当key不存在时,自动生成一个新的字符串值。
- 2)指定偏移量原来存储的位。
- 命令名称:getbit
- 语法:getbit key offset
- 功能:1)对key所存储的字符串值,获取指定偏移量上的位(bit)
- 返回值:
- 1)当offset比字符串值的长度大,或者key不存在时,返回0。
- 2)字符串值偏移量上的位(bit)
- 命令名称:bitcount
- 语法:bitcount key [start] [end]
- 注意:start和end是一个字节,一个字节为8位
- 功能:
- 1)计算给定字符串中,被设置为1的比特位的数量。
- 2)一般情况下,给定的整个字符串都会被进行计数,通过指定额外的start或end参数,可以让计数只在特定的位上进行。
- 返回值:1)不存在的key被当成是空字符串来处理,因此对一个不存在的key进行bitcount操作,结果为0/被设置为1的位的数量
- 命令名称:bitop
- 语法:bitop operation destkey key [key……]
- 功能:1)对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到destkey上。
- OPERATION:
- 1)可以是and(与)、or(或)、not(非)、xor(异或)这四种操作中的任意一种。
- 2)除了not操作外,其他操作都可以接受一个或多个key作为输入
- 注意:1)当bitop处理不同长度的字符串时,较短的那个字符串所缺少的额部分会被看做0.空的key也被看做是包含0的字符串序列
- 返回值:1)保存到destkey的字符串的长度,和输入key中最长的字符串长度相等。
- 命令名称:bitpos
- 语法:bitpos key bit [start] [end]
- 注意:start和end是一个字节,一个字节为8位
- 功能:1)返回字符串里面第一个被设置为1或者0的bit位。
- 返回值:
- 1)命令返回字符串里面第一个被设置为1或者0的bit位。
- 2)如果我们在空字符串或者0字节的字符串里面查找bit为1的内容,那么结果将返回-1。