1. 程式人生 > >多圖解釋Redis的整數集合intset升級過程

多圖解釋Redis的整數集合intset升級過程

redis原始碼分析系列文章

[Redis原始碼系列]在Liunx安裝和常見API 

為什麼要從Redis原始碼分析 

String底層實現——動態字串SDS 

雙向連結串列都不懂,還說懂Redis?

面試官:說說Redis的Hash底層 我:......(來自閱文的面試題)

Redis的跳躍表確定不瞭解下

 

前言

大噶好,今天仍然是元氣滿滿的一天,拋開永遠寫不完的需求,拒絕要求賊變態的客戶,單純的學習技術,感受技術的魅力。(哈哈哈,皮一下很開森)

前面幾周我們一起看了Redis底層資料結構,如動態字串SDS雙向連結串列Adlist字典Dict跳躍表

,如果有對Redis常見的型別或底層資料結構不明白的請看上面傳送門。

今天來說下set的底層實現整數集合,如果有對set不明白的,常見的API使用這篇就不講了,看上面的傳送門哈。

整數集合概念

整數集合是Redis設計的一種底層結構,是set的底層實現,當集合中只包含整數值元素,並且這個集合元素資料不多時,會使用這種結構。但是如果不滿足剛才的條件,會使用其他結構,這邊暫時不講哈。

下圖為整數集合的實際組成,包括三個部分,分別是編碼格式encoding,包含元素數量length,儲存元素的陣列contents。(這邊只需要簡單看下,下面針對每個模組詳細說明哈