Redis底層結構之壓縮列表

2021-10-11 18:45:11 字數 496 閱讀 7888

壓縮列表是一塊連續的記憶體空間,zset、hash容器在元素物件較少的時候,採用壓縮列表。

struct entry
因為ziplist是緊湊儲存,插入乙個新元素,需要realloc擴充套件記憶體,會重新分配記憶體空間,將內容進行拷貝

如果ziplist占用記憶體太大,重新分配記憶體和拷貝記憶體機會有很大的消耗。

不適合儲存大型字串,儲存的元素也不宜過多

存在級連更新的問題

當set集合元素容納的元素都是整數且元素個數較小時,redis會採用intset來儲存結合元素。intset是緊湊的陣列結構,支援16位,32位,64位整數

struct intset

Redis 底層資料結構 壓縮列表

壓縮列表 ziplist 是列表鍵和雜湊鍵的底層實現之一。當列表鍵只包含少量列表項,並且每個列表項或者是小整數值,或者是長度比較短的字串,redis會使用壓縮列表作為列表鍵的底層實現。當雜湊鍵只包含少量鍵值對,並且每個鍵值對的鍵和值,要麼是小整數值,要麼是長度比較短的字串,redis會使用壓縮列表作...

Redis底層資料結構 壓縮列表

redis 中的壓縮列表是由一系列特殊編碼的連續記憶體塊組成的順序型資料結構。列表中每個節點可以儲存乙個位元組陣列或者乙個整數值。它的存在主要是為了節約記憶體。壓縮列表在 redis 中主要作為了 list 列表和 hash 雜湊兩種資料結構的底層實現之一。在 list 列表中,要是列表中的儲存元素...

Redis底層資料結構 六 壓縮列表

壓縮列表 ziplist 是列表鍵和雜湊鍵的底層實現之一。當乙個列表鍵只包含少量列表項,並且每個列表項要麼是小整數值,要麼就是長度比較短的字串,redis就會使用壓縮列表來做列表鍵的底層實現。壓縮列表是redis為了節約記憶體而開發的,是由一系列編碼的聯絡記憶體塊組成的順序性資料結構。乙個壓縮列表可...