redis --- bitfield类型使用

目录

一、bitfield类型使用

1.1、 bitfield key [get type offset]

 1.2、 bitfield key [set type offset value]

 1.3、 bitfield key [incrby type offset increment]

 1.4、overflow[wrap][sat][fall]


一、bitfield类型使用

1.1、 bitfield key [get type offset]

127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> bitfield k1 get i8 0
1) (integer) 104
127.0.0.1:6379> bitfield k1 get i8 8
1) (integer) 101
127.0.0.1:6379> bitfield k1 get i8 16
1) (integer) 108
 

 1.2、 bitfield key [set type offset value]

127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> bitfield k1 set i8 8 120
1) (integer) 101
127.0.0.1:6379> get k1
"hxllo"
 

 1.3、 bitfield key [incrby type offset increment]

 127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 11
127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 12
127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 13
127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 14
127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 15
127.0.0.1:6379> bitfield k1 incrby u4 2 1
1) (integer) 0

 这里默认incrby使用wrap参数

 1.4、overflow[wrap][sat][fall]

①、wrap:使用回绕(wrap around)方法处理有符号整数和无符号整数的溢出情况。

redis --- bitfield类型使用_第1张图片

②、sat:使用饱和计算(saturation arithmetic)方法处理溢出,下溢计算结果为最小的整数值,而上溢计算的结果为最大的整数值。

127.0.0.1:6379> bitfield k1 overflow sat set i8 0 145
1) (integer) -122
127.0.0.1:6379> bitfield k1 get i8 0 
1) (integer) 127

③、fail:命令将拒绝执行那些会导致上溢或下溢情况出现的计算,并向用户返回空值表示计算未被执行。

 127.0.0.1:6379> bitfield k1 overflow fail set i8 0 230
1) (nil)

 

你可能感兴趣的:(redis,redis)