bitfields类型相关命令
用于存储和处理位级别的数据。在Redis中,位字段被存储在字符串类型的值中, 每个位都可以是0或1。bitfields提供位域修改和溢出处理。
1. BITFIELD命令
语法:
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/
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]
4. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
5. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
6. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
7. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
8. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
9. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
10. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
11. ZRANGE命令
语法: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]