redis 資料結構 整數集合和壓縮列表

2021-08-16 01:26:35 字數 623 閱讀 4260

要點redis內的使用

壓縮列表

要點:redis內使用

typedef

struct intset

encoding 說明intset,儲存的值是公升序的,並且不會重複

intset中如果有乙個數超過當前encoding的上下限,整個set都會公升級,以滿足存放更長數字的需求,但是,刪除超過限制的數字後,intset並不會降級,也就是說,公升級是單向的

公升級的好處:

壓縮列表是為了在資料較少的時候壓縮空間使用的,所以結構十分的,「崎嶇」。各種分情況而定的位元組結構

乙個壓縮列表包含

entry結構連鎖更新:存在這樣的可能性,本來乙個壓縮列表中各個節點的大小都小於254,但是,增加乙個節點,導致節點大小大於254,previous_entry_value擴大,進而導致其後的每乙個節點的previous_entry_value都擴大的情況;自然也有每個節點恰好都大於等於254,刪除乙個節點後,previous_entry_value變化,導致其後所有節點previous_entry_value都變小的情況。連鎖更新是比較消耗效能的,但是分析下來,這種情況出現概率較小,在連鎖的節點較少的情況下也不會產生問題。

列表鍵和雜湊鍵,少量資料時使用

Redis資料結構 整數集合

最新 redis記憶體 三個重要的緩衝區 最新 redis記憶體 記憶體消耗 記憶體都去哪了?最新 redis持久化 如何選擇合適的持久化方式 最新 redis持久化 aof日誌 整數集合 intset 並不是乙個基礎的資料結構,而是redis自己設計的一種儲存結構,是集合鍵的底層實現之一,當乙個集...

Redis資料結構 intset(整數集合)

整數集合是redis集合鍵的底層實現之一,如果乙個集合只包含整數值元素,而且元素數量不多,redis就會用整數集合作為集合鍵的底層實現 redis集合鍵的另一種底層實現是跳表 一 整數集合的應用場景 跟整數集合intset相關的redis命令主要有zadd sadd等等 二 整數集合的資料結構 ty...

Redis資料結構 整數集合 intset

整數集合 整數集合是集合鍵的底層實現之一,當乙個集合只包含整數值元素,並且這個集合的元素數量不多時,redis就會使用整數集合作為集合鍵的底層實現。1 整數集合實現 整數集合是redis用於儲存整數值的集合抽象資料結構,它可以可以儲存型別位int16 t int32 t int64 t的整數值,並且...