SETRANGE key offset value
不存在的键 key
当作空白字符串处理。
命令会确保字符串足够长以便将 value
设置到指定的偏移量上,如果键 key
原来储存的字符串长度比偏移量小(比如字符串只有 5
个字符长,但你设置的 offset
是 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00"
)进行填充。
Warning
当生成一个很长的字符串时,Redis 需要分配内存空间,该操作有时候可能会造成服务器阻塞(block)。在2010年出产的Macbook Pro上,设置偏移量为 536870911(512MB 内存分配)将耗费约 300 毫秒,设置偏移量为 134217728(128MB 内存分配)将耗费约 80 毫秒,设置偏移量 33554432(32MB 内存分配)将耗费约 30 毫秒,设置偏移量为 8388608(8MB 内存分配)将耗费约 8 毫秒。
代码示例
对非空字符串执行 SETRANGE
命令:
对空字符串/不存在的键执行 命令:
- (integer) 0
- (integer) 11
- "\x00\x00\x00\x00\x00Redis!"