2020-08-14string類型局部操作

SETRANGE

SETRANGE key offset value

從偏移量 offset 開始, 用 value 參數(shù)覆寫(overwrite)鍵 key 儲存的字符串值。

不存在的鍵 key 當作空白字符串處理。 SETRANGE 命令會確保字符串足夠長以便將 value 設置到指定的偏移量上, 如果鍵 key 原來儲存的字符串長度比偏移量小(比如字符串只有 5 個字符長,但你設置的 offset 是 10 ), 那么原字符和偏移量之間的空白將用零字節(jié)(zerobytes, "\x00" )進行填充。 SETRANGE 命令會返回被修改之后, 字符串值的字節(jié)數(shù)。
注意: 此命令 不適用于中文的值,因為偏移量是根據(jù) 字節(jié)來計算的,中文的字節(jié)數(shù)與英文不同

例子: 對非空字符串執(zhí)行 SETRANGE 命令:

redis? SET greeting "hello world"OKredis? SETRANGE greeting 6 "Redis" 11redis? GET greeting"hello Redis"
對空字符串/不存在的鍵執(zhí)行 SETRANGE 命令:

redis? SETRANGE empty_string 5 "Redis!"   # 對不存在的 key 使用 SETRANGE 11redis? GET empty_string                   # 空白處被"\x00"填充"\x00\x00\x00\x00\x00Redis!"

GETRANGE

GETRANGE key start end

返回鍵 key 儲存的字符串值的指定部分, 字符串的截取范圍由 start 和 end 兩個偏移量決定 (包括 start 和 end 在內(nèi))。

負數(shù)偏移量表示從字符串的末尾開始計數(shù), -1 表示最后一個字符, -2 表示倒數(shù)第二個字符, 以此類推。

例子:

redis? SET greeting "hello, my friend"OKredis? GETRANGE greeting 0 4          # 返回索引0-4的字符,包括4。"hello"redis? GETRANGE greeting -1 -5        # 不支持回繞操作""redis? GETRANGE greeting -3 -1        # 負數(shù)索引"end"redis? GETRANGE greeting 0 -1         # 從第一個到最后一個"hello, my friend"redis? GETRANGE greeting 0 1008611    # 值域范圍不超過實際字符串,超過部分自動被符略"hello, my friend"

作業(yè)

  1. 插入鍵值對 que abcdefg
set que abcdefg
  1. 將 que的值 efg 換為 zyx
setrange que 5 zyx
  1. 查詢 que 的最后三個字符
getrange que 4 6
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容