*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