*Redis SETRANGE 命令 从指定偏移量开始覆盖字符串
*语法
SETRANGE key offset value
*说明
SETRANGE 从偏移量 offset 开始,用 value 覆盖 key 中储存的字符串值。
- 如果 key 不存在,当作空白字符串处理。
- 若原字符串长度小于
offset,中间空白部分用零字节"\x00"填充。 - 返回修改后的字符串长度。
- Redis 字符串最大限制 512MB,因此最大可用偏移量为
2^29 - 1(536,870,911)。如需更大空间,请使用多个 key。
注意:生成超长字符串时,Redis 需要分配内存,可能短暂阻塞服务器。
*返回值
Integer reply:修改后的字符串长度。
*时间复杂度
O(1)(扩展字符串时的内存分配可能耗时更长)。
*版本兼容性
| Redis 版本 | 说明 |
|---|---|
| >= 2.2.0 | SETRANGE 可用 |
*示例
# 基础覆盖
SET key1 "Hello World"
SETRANGE key1 6 "Redis"
GET key1
# 从零字节填充开始
SETRANGE key2 6 "Redis"
GET key2
# 部分覆盖
SET msg "ABCDEFG"
SETRANGE msg 2 "xyz"
GET msg
# 查看修改后的长度
SETRANGE key3 10 "tail"
STRLEN key3