目錄 搜索
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群計數失敗報告) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群鍵槽) cluster meet cluster nodes(集群節點) cluster replicate(集群復制) cluster reset(集群重置) cluster saveconfig cluster set config epoch cluster setslot cluster slaves cluster slots readonly readwrite Connection auth echo ping quit select swapdb Geo geoadd geodist geohash geopos georadius georadiusbymember Hashes hdel hexists hget hgetall hincrby hincrbyfloat hkeys hlen hmget hmset hscan hset hsetnx hstrlen hvals HyperLogLog pfadd pfcount pfmerge Keys del dump exists expire expireat keys migrate move object persist pexpire pexpireat pttl randomkey rename renamenx restore scan sort touch ttl type unlink wait Lists blpop brpop brpoplpush lindex linsert llen lpop lpush lpushx lrange lrem lset ltrim rpop rpoplpush rpush rpushx Pub/Sub psubscribe publish pubsub punsubscribe subscribe unsubscribe Scripting eval evalsha script debug script exists script flush script kill script load Server bgrewriteaof bgsave client getname client kill client list client pause client reply client setname command command count command getkeys command info config get config resetstat config rewrite config set dbsize debug object debug segfault flushall flushdb info lastsave monitor role save shutdown slaveof slowlog time Sets sadd scard sdiff sdiffstore sinter sinterstore sismember smembers smove spop srandmember srem sscan sunion sunionstore Sorted Sets zadd zcard zcount zincrby zinterstore zlexcount zrange zrangebylex zrangebyscore zrank zrem zremrangebylex zremrangebyrank zremrangebyscore zrevrange zrevrangebylex zrevrangebyscore zrevrank zscan zscore zunionstore Strings append bitcount bitfield bitop bitpos decr decrby get getbit getrange getset incr incrby incrbyfloat mget mset msetnx psetex set setbit setex setnx setrange strlen Transactions discard exec multi unwatch watch
文字

SETRANGE key offset value

自2.2.0起可用。

時間復雜度: O(1),不包括復制新字符串所用的時間。通常,這個字符串非常小,所以分期復雜度為O(1)。否則,復雜度為O(M),其中M是值參數的長度。

在指定的偏移量處重寫存儲在關鍵字處的整個字符串的部分。如果偏移量大于的當前字符串長度,則用零字節填充字符串以進行偏移量擬合。不存在的鍵被認為是空字符串,所以這個命令將確保它包含足夠大的字符串以便能夠在偏移量處設置

請注意,您可以設置的最大偏移量為229 -1(536870911),因為Redis字符串限制為512兆字節。如果你需要擴大到這個尺寸,你可以使用多個鍵。

警告:當設置最后一個可能的字節并且存儲在密鑰中的字符串值尚未保存字符串值或保存一個小字符串值時,Redis 需要分配所有可以阻塞服務器一段時間的中間內存。在2010年的 MacBook Pro上,設置字節數536870911(512MB分配)需要約300ms,設置字節數134217728(128MB分配)占用約80ms,設置位數33554432(32MB分配)占用約30ms,設置位數8388608(分配8MB)需要?8ms。請注意,一旦完成第一次分配,對同一個密鑰的 SETRANGE 后續調用將不會產生分配開銷。

模式

感謝 SETRANGE 和類似的 GETRANGE 命令,您可以使用 Redis 字符串作為具有O(1)隨機訪問的線性陣列。這是許多真實世界使用案例中非常快速和高效的存儲空間。

返回值

整數回復:命令修改后的字符串長度。

例子

基本用法:

redis>  SET key1 "Hello World" "OK" redis>  SETRANGE key1 6 "Redis" (integer) 11 redis>  GET key1 "Hello Redis"

零填充示例:

redis>  SETRANGE key2 6 "Redis" (integer) 11 redis>  GET key2 "\u0000\u0000\u0000\u0000\u0000\u0000Redis"

上一篇: 下一篇:
118期四肖中特唯一