redis資料結構及編碼方式

2021-10-02 20:17:02 字數 934 閱讀 3495

edis有5種常用的資料結構:string、hash、list、set、zset,通過type [key]命令可以檢視當前鍵的資料結構型別;每種資料結構都有不止一種相應的內部編碼實現,redis會在合適的場景選擇合適的內部編碼,通過object encoding [key] 可以檢視內部編碼。

這樣設計的好處:

1.改進內部編碼,對外的資料結構和命令沒有影響,外部使用者無感知。

2.多種內部編碼可在不同場景下發揮各自優勢。如:ziplist比較節約記憶體,但在元素比較多的時候,效能會下降,此時轉換為linkedlist。

每種資料結構以及內部編碼如下表所示:

string型別hash型別

在資料量較小時使用ziplist,更加緊湊的儲存元素,節省記憶體;當不滿足其使用條件時,會使用hashtable作為hash的內部實現,此時ziplist的讀寫效率會下降,而hashtable的讀寫時間複雜度為o(1)。

list型別

用來儲存多個有序的可重複的字串,乙個列表最多可有2^32-1個元素;可以對列表兩端插入和彈出,還可以取指定範圍的元素列表、獲取指定索引下標的元素等。列表是一種比較靈活的資料結構,可以充當棧和佇列的角色。

set型別

集合中不允許有重複元素,並且集合中的元素是無序的。乙個set集合最多可有2^32-1個元素,支援多個集合的交集、並集、差集。

zset型別

有序集合,不能有重複元素,但元素可以排序,通過給每乙個元素設定乙個分數作為排序的依據。提供了獲取指定分數和元素範圍查詢、計算成員排名等功能。

Redis 資料結構的編碼方式(未完)

redis五種資料結構string 字串 hash 雜湊 list 列表 set 集合 zset 有序集合 每種資料結構都有自己底層的內部編碼實現,而且是多種實現。如下兩張圖,左側為redis的五種編碼,右側為各種編碼的內部編碼方式。使用object encoding key的的方式便可以知道鍵值對...

Redis資料結構及編碼配置介紹

在專案中redis是會經常用到得 優點 1 讀寫效能優異 2 支援資料持久化,支援aof和rdb兩種持久化方式 3 支援主從複製,主機會自動將資料同步到從機,可以進行讀寫分離。4 資料結構豐富 除了支援string型別的value外還支援string hash set sortedset list等...

redis各資料結構編碼

資料結構 特點編碼 string 字串 redis 最基本的型別,string 型別是二進位制安全的 redis encoding int 如果乙個字串物件儲存的是整數值,並且這個整數值可以用long型別來表示 redis encoding embstr 如果字串物件儲存的是乙個字串值,並且這個字串...