Stirng字符串
SETRANGE命令
命令:setrange key offset value,从偏移量offset开始,覆写value(对于新的value长度如果小于旧值从offset到结束的长度时,长度小于的部分会保持不变),并返回当前value的长度
特殊的情况如下:
1.offset偏移量从0开始,如果偏移量小于0,则会报错(error) ERR offset is out of range
2.如果offset的下标大于旧值的长度,中间的部分会用零字节(zerobytes,“\x00”)进行填充
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> setrange db -1 redis //只要offset偏移量小于0,就会报错
(error) ERR offset is out of range
127.0.0.1:6379> setrange db 0 redis //如果没有,也会执行,相当于set key value,并返回当前长度
(integer) 5
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> setrange db 0 mogo //a.新的value从offset开始覆写,并返回当前长度
(integer) 5
127.0.0.1:6379> get db //b.覆写时value长度小于旧值从offset到旧值字符串结束时,不足的部分不变
"mogos"
127.0.0.1:6379> setrange db 0 mysql //覆写value,并返回操作之后的value的长度
(integer) 5
127.0.0.1:6379> get db
"mysql"
127.0.0.1:6379> setrange db 5 '+redis'
(integer) 11
127.0.0.1:6379> get db
"mysql+redis"
127.0.0.1:6379> del db //删除db的键值对
(integer) 1
127.0.0.1:6379> setrange db 1 redis //a.键db不存在,此时从offset=1开始覆写
(integer) 6
127.0.0.1:6379> get db //b.offset前面(下标为0)value部分会用“\x00”填充
"\x00redis"