# Bit Commands
# getbit
支持:是
说明:对 key 所存储的字符串值,获取其指定偏移量上的位(bit)
示例:
> SETBIT mykey 7 1 (integer) 0 > GETBIT mykey 0 (integer) 0 > GETBIT mykey 7 (integer) 1 > GETBIT mykey 100 (integer) 0
# setbit
支持:是
说明:对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
示例:
> SETBIT mykey 7 1 (integer) 0 > SETBIT mykey 7 0 (integer) 1 > GET mykey ""
# bitcount
支持:是
说明:用于计算字符串中,被设置为 1 的比特位的数量。
示例:
> SET mykey "foobar" "OK" > BITCOUNT mykey (integer) 26 > BITCOUNT mykey 0 0 (integer) 4 > BITCOUNT mykey 1 1 (integer) 6 > BITCOUNT mykey 1 1 BYTE (integer) 6 > BITCOUNT mykey 5 30 BIT (integer) 17
# bitpos
支持:是
说明:返回位图中第一个值为bit的二进制位的位置,返回一个整数
示例:
> SET mykey "\xff\xf0\x00" "OK" > BITPOS mykey 0 (integer) 12 > SET mykey "\x00\xff\xf0" "OK" > BITPOS mykey 1 0 (integer) 1 > BITPOS mykey 1 2 (integer) 18 > BITPOS mykey 1 2 -1 BYTE (integer) 18 > BITPOS mykey 1 7 15 BIT (integer) 9 > set mykey "\x00\x00\x00" "OK" > BITPOS mykey 1 (integer) 1 > BITPOS mykey 1 7 -3 BIT (integer) 9
# bitop
支持:是
说明:对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到destkey上
示例:
> SET key1 "foobar" "OK" > SET key2 "abcdef" "OK" > BITOP AND dest key1 key2 (integer) 6 > GET dest "`bc`ab"
# bitfield
支持:是
说明:允许对字符串中的位进行原子性、复杂操作(如读写、自增等)
示例:
> BITFIELD mykey INCRBY i5 100 1 GET u4 0 1) (integer) 1 2) (integer) 0 > BITFIELD mystring SET i8 #0 100 SET i8 #1 200 1) (integer) 0 2) (integer) 0 > BITFIELD mykey incrby u2 100 1 OVERFLOW SAT incrby u2 102 1 1) (integer) 1 2) (integer) 1 > BITFIELD mykey incrby u2 100 1 OVERFLOW SAT incrby u2 102 1 1) (integer) 2 2) (integer) 2 > BITFIELD mykey incrby u2 100 1 OVERFLOW SAT incrby u2 102 1 1) (integer) 3 2) (integer) 3 > BITFIELD mykey incrby u2 100 1 OVERFLOW SAT incrby u2 102 1 1) (integer) 0 2) (integer) 3 > BITFIELD mykey OVERFLOW FAIL incrby u2 102 1 1) (nil)