Redis 跳躍表的實現

Redis使用跳躍表作爲有序集合鍵的底層實現之一,如果一個有序集合包含的元素數量較多,或者有序集合中成員是較長的字符串時,Redis就會使用跳躍表來作爲有序集合鍵的底層實現。

和鏈表、字典等數據結構在Redis內部的廣泛應用不同,Redis只在實現有序集合鍵和集羣節點中用到跳躍表。


跳躍表節點 zskiplistNode

typeof struct zskiplistNode {

//層

struct zskipzlistLevel{

//前進指針

struct zskiplistNode *forward;

//跨度

unsigned int span;

} level[];


//後退指針

struct zskiplistNode *backward;

//分值

double score;

//成員對象

rojb *obj;

} zskiplistNode;



跳躍表 zskiplist

typeof struct zskiplist {

//表頭節點和表尾節點

structz skiplistNode *header, *tail;

//表中節點數量

unsigned long length;

//表中層數最大節點的層數

int level;

} zskiplist;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章