壓縮列表

壓縮列表(ziplist)是列表鍵和哈希鍵的底層實(shí)現(xiàn)之一。當(dāng)一個(gè)列表鍵只包含少量列表項(xiàng),并且每個(gè)列表項(xiàng)要么就是小整數(shù)值,要么就是長度比較短的字符串,那么redis就會使用壓縮列表來做列表建的底層實(shí)現(xiàn)。

壓縮列表的結(jié)構(gòu)

zlbytes zltail zllen entry1 entry2 ... entryN zlend
屬性 類型 長度 用途
zlbytes uint32_t 4字節(jié) 記錄整個(gè)壓縮列表占用的內(nèi)存字節(jié)數(shù):在對壓縮列表進(jìn)行內(nèi)存重分配,或者計(jì)算zlend的位置時(shí)使用
zltail uint32_t 4字節(jié) 記錄壓縮表表尾節(jié)點(diǎn)距離壓縮列表的起始地址有多少字節(jié):通過整個(gè)偏移量,程序無需遍歷整個(gè)壓縮列表皆可以確定表尾節(jié)點(diǎn)的地址
zllen uint16_t 2字節(jié) 記錄了壓縮列表包含的節(jié)點(diǎn)數(shù)量
entryX 列表節(jié)點(diǎn) 不定 壓縮列表包含的各個(gè)節(jié)點(diǎn)
zlend uint8_t 1字節(jié) 特殊值0xFF(十進(jìn)制255),用于標(biāo)記壓縮列表的末端

壓縮列表節(jié)點(diǎn)的構(gòu)成

previous_entry_length encoding content

previous_entry_length:以字節(jié)為單位,記錄了壓縮列表中前一個(gè)節(jié)點(diǎn)的長度。
因?yàn)楣?jié)點(diǎn)的previous_entry_length屬性記錄了前一個(gè)節(jié)點(diǎn)的長度,所以程序可以通過指針運(yùn)算,根據(jù)當(dāng)前節(jié)點(diǎn)的起始地址來計(jì)算出前一個(gè)節(jié)點(diǎn)的起始地址。
encoding:記錄了節(jié)點(diǎn)content屬性所保存數(shù)據(jù)的類型以及長度
content:負(fù)責(zé)保存節(jié)點(diǎn)的值,可以是一個(gè)字節(jié)數(shù)組或者整數(shù)。

總結(jié)

壓縮列表是一種為節(jié)約內(nèi)存而開發(fā)的順序型數(shù)據(jù)結(jié)構(gòu)。
壓縮列表被用作列表建和哈希鍵的底層實(shí)現(xiàn)之一。
壓縮列表可以包含多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可以保存一個(gè)字節(jié)數(shù)組或者整數(shù)值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 壓縮列表(ziplist)是列表鍵和哈希鍵的底層實(shí)現(xiàn)之一。 當(dāng)一個(gè)列表鍵只包含少量列表項(xiàng), 并且每個(gè)列表項(xiàng)要么就是...
    顏灝_2181閱讀 360評論 0 0
  • 本人博客同步發(fā)表,排版更佳 概述 壓縮列表是列表、哈希的底層實(shí)現(xiàn)之一 當(dāng)列表只包含少量列表項(xiàng),并且要么是小整數(shù)值、...
    峰巢閱讀 646評論 0 3
  • redis使用兩種數(shù)據(jù)結(jié)構(gòu)保存鏈表,分別是ziplist與linkedlist,內(nèi)存占用及常用操作效率各不相同。本...
    但莫閱讀 1,243評論 0 1
  • 一年四班劉偉涵 2018年1月3日-星期三-晴 陪兒子讀書第三天。讓孩子把讀書當(dāng)成了樂趣
    3c2e0e4e84b6閱讀 122評論 0 0
  • 數(shù)據(jù)可視化的發(fā)展,將改變傳統(tǒng)的管理方式,讓數(shù)據(jù)的呈現(xiàn)更及時(shí)、更直觀、更簡單。 數(shù)據(jù)可視化是什么? 數(shù)據(jù)可視化——借...
    野蠻人豆豆霸霸閱讀 270評論 0 0

友情鏈接更多精彩內(nèi)容