Redis SETRANGE令

1年前 (2024-04-28)
Redis  SETRANGE 令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。

如果 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 令,无须重新分配内存。