1.壓縮列表
壓縮列表是列表鍵和雜湊鍵的底層實現之一, 當包含的少量列表項並且列表項是小整數值或者較短字串時,redis會使用壓縮列表鍵的底層實現
2.壓縮列表的構成
zlbytes: 壓縮列表的總長
zltail: 尾節點距離壓縮列表起始位址的便宜量
zllen: 表示壓縮列表包含的節點數量
3.壓縮列表節點
previous_entry_length: 記錄前乙個節點的長度, 通過這個屬性可以獲取前乙個節點的指標
encoding: 記錄節點content屬性所儲存資料的型別和長度, 值的高位為00、01、10代表content儲存的是位元組陣列,
長度由編碼除去最高兩位之後的其他位記錄. 11代表content儲存的這整數值
content: 儲存節點的值,可以是位元組陣列或者整數
4.連鎖更新
如果前乙個節點的長度小於254位元組,那麼previous_entry_length屬性需要用乙個位元組,如果長度大於254位元組,則previous需要
5個位元組來儲存. 如果有連續長度是250-253的節點,當新節點長度超過254時並且設定為了頭節點,就會導致每個節點都要擴充套件
(刪除也會導致這種情況)
redis 壓縮列表
壓縮列表是列表鍵和雜湊鍵的底層實現之一。當乙個列表鍵只包含少量列表項,並且每個列表項要麼就是小整數值,要麼就是長度比較短的字串,那麼redis就會使用壓縮列表來做列表鍵的底層實現。另外,當乙個雜湊鍵只包含少量鍵值對,並且每個鍵值對的鍵和值要麼就是小整數值,要麼就是長度比較短的字串,那麼redis就會...
Redis之壓縮列表
壓縮列表 ziplist 是列表鍵和雜湊鍵的底層實現之一。當乙個列表鍵只包含少量列表項,並且每個列表項要麼就是小整數值,要麼就是長度比較短的字串,redis就會使用壓縮列表來做列表鍵的底層實現。下面看一下壓縮列表實現的列表鍵 列表鍵裡面包含的都是1 3 5 10086這樣的小整數值,以及 hello...
Redis中的壓縮列表
壓縮列表 ziplist 是列表鍵和雜湊鍵的底層實現之一。當乙個列表鍵只包含少量列表項,並且每個列表項要麼就是小整數值,要麼就是長度比較短的字串,那麼redis就會使用壓縮列表來做列表鍵的底層實現。例如,執行以下命令將建立乙個壓縮列表實現的列表鍵 127.0 0.1 6379 rpush 1st 1...