欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表

 更新時間:2017年05月14日 16:59:21   投稿:lqh  
這篇文章主要介紹了詳解redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表的相關(guān)資料,壓縮列表在redis中的結(jié)構(gòu)體名稱為ziplist,其是redis為了節(jié)約內(nèi)存而聲明的一種數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下

 詳解redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表

redis使用壓縮列表作為列表鍵和哈希鍵的底層實(shí)現(xiàn)之一。當(dāng)一個列表鍵只包含少量的列表項(xiàng),并且每個列表項(xiàng)都是由小整數(shù)值或者是短字符串組成,那么redis就會使用壓縮列表存儲列表項(xiàng);同理,當(dāng)一個哈希表包含的鍵值對都是由小整數(shù)值或者是短字符串組成,并且存儲的鍵值對數(shù)目不多時,redis也會使用壓縮列表來存儲哈希表。以下是壓縮列表存儲結(jié)構(gòu):

 

  • zlbytes長度為4個字節(jié),記錄了整個壓縮列表所占用的字節(jié)數(shù)
  • zltail長度為4個字節(jié),記錄了壓縮列表起始位置到壓縮列表尾節(jié)點(diǎn)的偏移量
  • zllen長度為2個字節(jié),記錄了當(dāng)前壓縮列表中所擁有的entry的數(shù)量
  • entryX存儲了實(shí)際的對象,其長度根據(jù)具體的實(shí)體而定
  • zlend長度為1個字節(jié),保存了十進(jìn)制的255,用于標(biāo)記壓縮列表的末端

      通過上面的結(jié)構(gòu)可以看出,壓縮列表存儲數(shù)據(jù)的為一整個數(shù)組,在這個數(shù)組中前12個字節(jié)固定保存了zlbytes、zltail和zllen三個表征整個壓縮列表屬性的數(shù)據(jù),而后續(xù)的數(shù)組則保存了entry的數(shù)組,最后通過一個字節(jié)長度的屬性zlend來記錄當(dāng)前壓縮列表已經(jīng)結(jié)束。

      在上述結(jié)構(gòu)中,我們并沒有看到任何屬性用以表征每個entry的長度及其存儲的數(shù)據(jù)類型,如字符串或者是整型值,而壓縮列表整體其實(shí)是一個數(shù)組,因而如果不對這兩個類型的數(shù)據(jù)進(jìn)行記錄那么將無法對每一個entry進(jìn)行區(qū)分。實(shí)際上,每個entry是由三部分組成:previous_entry_length、encoding和content。

1.previous_entry_length為一個整型值,記錄了前一個節(jié)點(diǎn)整體占用字節(jié)的長度,當(dāng)前一個節(jié)點(diǎn)的長度小于254時,該屬性占用一個字節(jié),當(dāng)前一個節(jié)點(diǎn)長度大于等于254時,該屬性則占用5個字節(jié),其第一個字節(jié)會保存十進(jìn)制的0xFE,即十進(jìn)制的254,后四個字節(jié)則保存了前一節(jié)點(diǎn)的長度;

2.encoding屬性長度不定,其主要保存了當(dāng)前節(jié)點(diǎn)的編碼格式和節(jié)點(diǎn)的長度。當(dāng)encoding屬性的最高兩位為00、01或10時,表示其存儲的是字節(jié)數(shù)組。其為00時,encoding占用1個字節(jié),其后6位保存了content屬性的長度;為01時,encoding占用2個字節(jié),其后14位保存了content屬性的長度;為10時,則其后38位保存了content屬性的長度。當(dāng)encoding屬性的最高兩位為11時,表示其存儲的是一個整型值,并且此時encoding屬性的長度為1個字節(jié)。當(dāng)11后兩位,也即第三位和第四位為00時,表示存儲的是int16_t類型的整數(shù),當(dāng)其為01時,表示存儲的是int32_t類型的整數(shù),當(dāng)其為10時,表示存儲的是int64_t類型的整數(shù),當(dāng)其為11時,表示存儲的是24位有符號整數(shù)。(這四種情況后續(xù)位上的值都為0)當(dāng)11后五位為1,并且最后一位為0時,表示存儲的是8位有符號整數(shù)。當(dāng)11后兩位為11時,那么該節(jié)點(diǎn)就沒有content屬性,該節(jié)點(diǎn)的屬性值保存在encoding屬性的后四個位上,并且其值要介于0~12之間。

3.content屬性保存了該節(jié)點(diǎn)的實(shí)際的字符串或整型數(shù)據(jù)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 關(guān)于Redis持久化的深入探究

    關(guān)于Redis持久化的深入探究

    Redis持久化是將內(nèi)存中的數(shù)據(jù)保存到磁盤,以防止數(shù)據(jù)丟失。Redis提供了兩種持久化方式:RDB和AOF,本文將給大家詳解介紹Redis持久化,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-05-05
  • Redis數(shù)據(jù)結(jié)構(gòu)原理淺析

    Redis數(shù)據(jù)結(jié)構(gòu)原理淺析

    這篇文章主要為大家介紹了Redis數(shù)據(jù)結(jié)構(gòu)原理淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Redis教程之代理ip池設(shè)計(jì)方法詳解

    Redis教程之代理ip池設(shè)計(jì)方法詳解

    這篇文章主要介紹了Redis實(shí)現(xiàn)代理ip池的設(shè)計(jì)方法,文中給出了詳細(xì)的介紹與示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • Redis為什么快如何實(shí)現(xiàn)高可用及持久化

    Redis為什么快如何實(shí)現(xiàn)高可用及持久化

    這篇文章主要介紹了Redis為什么快如何實(shí)現(xiàn)高可用及持久化,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Redis源碼閱讀:Redis字符串SDS詳解

    Redis源碼閱讀:Redis字符串SDS詳解

    這篇文章主要介紹了Redis源碼閱讀:Redis字符串SDS,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • redis啟動報錯Can‘t?open?the?log?file:?No?such?file?or?directory

    redis啟動報錯Can‘t?open?the?log?file:?No?such?file?or?d

    這篇文章主要介紹了redis啟動報錯Can‘t?open?the?log?file:?No?such?file?or?directory問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • redis單節(jié)點(diǎn)安裝與配置方式

    redis單節(jié)點(diǎn)安裝與配置方式

    這篇文章主要介紹了redis單節(jié)點(diǎn)安裝與配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 詳解Redis如何處理Hash沖突

    詳解Redis如何處理Hash沖突

    在 Redis 中,哈希表是一種常見的數(shù)據(jù)結(jié)構(gòu),通常用于存儲對象的屬性,對于哈希表,最常遇到的是哈希沖突,那么,當(dāng) Redis遇到Hash沖突會如何處理?本文我們將詳細(xì)介紹Redis如何處理哈希沖突,需要的朋友可以參考下
    2024-09-09
  • Redis概述及l(fā)inux安裝redis的詳細(xì)教程

    Redis概述及l(fā)inux安裝redis的詳細(xì)教程

    這篇文章主要介紹了Redis概述及l(fā)inux安裝redis的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 使用Ruby腳本部署Redis Cluster集群步驟講解

    使用Ruby腳本部署Redis Cluster集群步驟講解

    今天小編就為大家分享一篇關(guān)于使用Ruby腳本部署Redis Cluster集群步驟講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論