redis命令之string类型setrange命令用法详情

47 篇文章 0 订阅
45 篇文章 1 订阅

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"

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值