第五章 跳躍表

2021-10-02 06:55:24 字數 852 閱讀 8978

跳躍表(skiplist)是一種有序資料結構,它通過在每個節點中維持多個指向其他節點的指標,從而達到快速訪問節點的目的。支援平均o(logn)、最壞o(n)複雜度的節點查詢,還可以通過順序性操作來批量處理節點。

redis只在兩個地方用到了跳躍表,乙個是實現有序集合鍵,另乙個是在集群節點中用作內部資料結構。

redis的跳躍表由redis. h/ zskiplistnode和redis. h/ zskiplist兩個結構定義,其中zskiplistnode結構用於表示跳躍表節點,而zskiplist結構則用於儲存跳躍表節點的相關資訊,比如節點的數量,以及指向表頭節點和表尾節點的指標等等。

typedef

struct zskiplistnode level;

struct zskiplistnode *backward;

// 後退指標(每次只能後退至前乙個節點)

double score;

// 分值(double型別的浮點數,排序的依據)

robj *obj;

// 成員物件(唯一性)

第五章 跳躍表

跳躍表 在每個節點維持多個指向其他節點的指標,達到快速訪問節點的目的。redis使用跳躍表作為有序集合鍵的底層實現之一。zskiplist結構 zskiplistnode結構 5.1.1 跳躍表節點 type struct zskiplistnode level zskiplistnode 1.層跳...

《Redis設計與實現》第五章 跳躍表

跳表是一種有序的資料結構,它通過在每個節中維持多個指向其他節點的指標,從而達到快速訪問節點的目的。跳躍表支援平均 logn 最壞o n 時間複雜度的查詢。跳躍表作為有序集合鍵的底層實現之一。redis兩個地方用到了跳躍表 乙個是實現有序集合鍵 另外乙個是在集群節點中用作內部資料結構,除此之外沒有其他...

Redis設計與實現 筆記 第五章 跳躍表

跳躍表是一種有序的資料結構,通過在每個節點中維持多個指向其他節點的指標,從而達到快速訪問節點的目的.跳躍表支援平均 o logn 最壞 o n 的複雜度節點查詢,還可以通過順序性操作批量節點.節點整體效率接近紅黑樹,且 複雜度低於紅黑樹.跳表的實現思路也類似於紅黑樹,區別於紅黑樹通過大於小於等於某乙...