Redis SETRANGE令
1年前 (2024-04-28)
Redis SETRANGE 令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
如果 key 原来储存的字符串长度比偏移量小,比如字符串只有 5 个字符长,但你设置的 offset 是 10,那么原字符和偏移量之间的空白字符将用零字节("\x00" )来填充。
偏移量是 2^29-1(536870911) ,因为 Redis 字符串的大小被限制在 512 兆以内,如果您需要使用比这更大的空间,可以使用多个 key 来实现 。
如果 key 原来储存的字符串长度比偏移量小,比如字符串只有 5 个字符长,但你设置的 offset 是 10,那么原字符和偏移量之间的空白字符将用零字节("\x00" )来填充。
偏移量是 2^29-1(536870911) ,因为 Redis 字符串的大小被限制在 512 兆以内,如果您需要使用比这更大的空间,可以使用多个 key 来实现 。
注意:当生成一个很长的字符串时,Redis 需要分配内存空间,该操作有时候可能会造成服务器阻塞。
可用版本
SETRANGE 令可用版本:>= 2.2.0
语法
Redis SETRANGE 令的基本语法如下:
SETNX key value
返回值
被修改之后的字符串总长度 。令演示
127.0.0.1:6379> SET url "this site"
OK
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> SETRANGE url 5 www.biancheng网站站点" rel="nofollow" />
注意:若内存分配成功之后,再对同一个 key 调用 SETRANGE 令,无须重新分配内存。