Skip to content

bitfields类型相关命令

用于存储和处理位级别的数据。在Redis中,位字段被存储在字符串类型的值中, 每个位都可以是0或1。bitfields提供位域修改和溢出处理。

1. BITFIELD命令

语法:

sh
BITFIELD key [GET encoding offset | [OVERFLOW <WRAP | SAT | FAIL >]   
   <SET encoding offset value | INCRBY encoding offset increment>
    [GET encoding offset | [OVERFLOW <WRAP | SAT | FAIL >]
  <SET encoding offset value | INCRBY encoding offset increment>
...]]

允许用户在位图中的任意区域(field)存储指定长度的整数值,并对这些整数值执行加法或减法操作。
参数说明:

  • GET <encoding> <offset>: 返回指定偏移量的二进制位的值。
  • SET <encoding> <offset> <value>: 设置值到指定的位置并返回旧的值
  • INCRBY <encoding> <offset> <increment>: 增加或者减少bit位数并返回新的值
  • OVERFLOW [WRAP|SAT|FAIL]: 配合INCRBY或者SET使用,用来控制发生溢出时的行为。WRAP表示溢出就重新从0开始递增,SAT表示溢出就保持溢出前最大值,FAIL表示操作失败,旧数据不变。

其中encoding表示参数的值需要以i或者u为前缀,后跟被设置值的位长度,其中i表示被设置的值为有符号整数,而u则表示被设置的值为无符号整数。比如i8表示被设置的值为有符号8位整数,而u16则表示被设置的值为无符号16位整数,Redis最大支持有符号整数最多为64位即i64,对于无符号整数最多为63位即u63。offset参数用于指定设置的起始偏移量,或者用指定索引(字节)位置,用#索引offset等效。value参数用于指定被设置的整数值,这个值的类型应该和encoding参数指定的类型一致。 对于整型的ASCII可以参考:https://ascii.org.cn/

sh
127.0.0.1:6379> bitfield bitmap1 set u8 0 198 set i9 100 12000
1) (integer) 0
2) (integer) 0
127.0.0.1:6379> bitfield bitmap1 get u8 0 get i20 100
1) (integer) 198
2) (integer) 12000
127.0.0.1:6379> bitfield bitmap3 set u8 #0 125 set i10 #1 365 set i63 #3 360
1) (integer) 0
2) (integer) 0
3) (integer) 0
127.0.0.1:6379> bitfield bitmap3 incrby u8 #0 125
1) (integer) 250
127.0.0.1:6379> bitfield bitmap3 get u8 #0
1) (integer) 250
127.0.0.1:6379> bitfield bitmap3 OVERFLOW  wrap incrby u8 #0 1250000
1) (integer) 202
127.0.0.1:6379> bitfield bitmap3 get u8 #0
1) (integer) 202

## 2. ZRANGE命令
语法: `ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]`
```sh

3. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

4. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

5. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

6. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

7. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

8. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

9. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

10. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh

11. ZRANGE命令

语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]

sh