Redis資料結構之String
阿新 • • 發佈:2022-03-22
常用命令
set <key> <value> 新增鍵值對
get <key> 查詢對應鍵值
append <key> <value> 將給定的<value>追加到原值的末尾
strlen <key> <value> 只有在key不存在時,才設定key的值
incr <key> 將key中儲存的數字值增1
desc <key> 將key中儲存的數字值減1
mset <key1> <value1> <key2> <value2> ... 同時設定一個或多個key-value對
mget <key1> <key2> <key3> ... 同時獲取一個或多個value
msetnx <key1> <value1> <key2> <value2> ... 同時設定一個或多個key-value對,當且僅當所有給定的key都不存在。
getrange <key> <起始位置> <結束位置> 獲得值的範圍,類似Java中的substring,前包,後包
setrange <key> <起始位置> <value> 用 <value> 覆寫<key>所儲存的字串值,從<起始位置>開始(索引從0開始)
setex <key> <過期時間> <value> 設定鍵值的同時,設定過期時間,單位秒。
getset
資料結構
String的資料結構為簡單動態字串。是可以修改的字串,內部結構實現上類似於Java的ArrayList,採用預分配冗餘空間的方式來減少記憶體的頻繁分配。
如圖所示,內部為當前字串實際分配的空間capacity,一般高於實際字串長度len。當字串長度小於1M時,擴容都是加倍現有的空間,如果超過1M,擴容時一次只會多擴1M的空間。需要注意的是字串最大長度為512M。