1. 程式人生 > 其它 >Redis資料結構之String

Redis資料結構之String

Redis資料結構之String

常用命令

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 <key> <value> 以舊換新,設定了新值同時獲得舊值。

 

資料結構

String的資料結構為簡單動態字串。是可以修改的字串,內部結構實現上類似於Java的ArrayList,採用預分配冗餘空間的方式來減少記憶體的頻繁分配。

 

 

如圖所示,內部為當前字串實際分配的空間capacity,一般高於實際字串長度len。當字串長度小於1M時,擴容都是加倍現有的空間,如果超過1M,擴容時一次只會多擴1M的空間。需要注意的是字串最大長度為512M。