目錄搜索
Clustercluster addslots(集群 槽位)cluster count failure reports(集群計數失敗報告)cluster countkeysinslotcluster delslotscluster failovercluster forgetcluster getkeysinslotcluster infocluster keyslot(集群鍵槽)cluster meetcluster nodes(集群節點)cluster replicate(集群復制)cluster reset(集群重置)cluster saveconfigcluster set config epochcluster setslotcluster slavescluster slotsreadonlyreadwriteConnectionauthechopingquitselectswapdbGeogeoaddgeodistgeohashgeoposgeoradiusgeoradiusbymemberHasheshdelhexistshgethgetallhincrbyhincrbyfloathkeyshlenhmgethmsethscanhsethsetnxhstrlenhvalsHyperLogLogpfaddpfcountpfmergeKeysdeldumpexistsexpireexpireatkeysmigratemoveobjectpersistpexpirepexpireatpttlrandomkeyrenamerenamenxrestorescansorttouchttltypeunlinkwaitListsblpopbrpopbrpoplpushlindexlinsertllenlpoplpushlpushxlrangelremlsetltrimrpoprpoplpushrpushrpushxPub/SubpsubscribepublishpubsubpunsubscribesubscribeunsubscribeScriptingevalevalshascript debugscript existsscript flushscript killscript loadServerbgrewriteaofbgsaveclient getnameclient killclient listclient pauseclient replyclient setnamecommandcommand countcommand getkeyscommand infoconfig getconfig resetstatconfig rewriteconfig setdbsizedebug objectdebug segfaultflushallflushdbinfolastsavemonitorrolesaveshutdownslaveofslowlogtimeSetssaddscardsdiffsdiffstoresintersinterstoresismembersmemberssmovespopsrandmembersremsscansunionsunionstoreSorted SetszaddzcardzcountzincrbyzinterstorezlexcountzrangezrangebylexzrangebyscorezrankzremzremrangebylexzremrangebyrankzremrangebyscorezrevrangezrevrangebylexzrevrangebyscorezrevrankzscanzscorezunionstoreStringsappendbitcountbitfieldbitopbitposdecrdecrbygetgetbitgetrangegetsetincrincrbyincrbyfloatmgetmsetmsetnxpsetexsetsetbitsetexsetnxsetrangestrlenTransactionsdiscardexecmultiunwatchwatch
文字

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)隨機訪問的線性陣列。這是許多真實世界使用案例中非??焖俸透咝У拇鎯臻g。

返回值

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

例子

基本用法:

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"

上一篇:下一篇:
3d试机号绕胆图