nber1994



redis数据结构-跳跃表

January 8, 2019

redis数据结构-跳跃表

结构

跳跃表由zskiplistNode和zskiplist结构组成

对于跳跃表结构:

typedef strut zskiplist {
    //表头节点和表尾节点
    struct zskiplistNode *header, *tail;;
    //表节点的数量
    unsigned long length
    //表中层数最大值
    int level
} zskilplist;

对于跳跃表节点结构:

typedef struct zskiplistNode {
    //层
    struct zskiplistLevel {
        //前进指针
        struct zskiplistNode *forward;
        //跨度
        unsigned int span;
    } level[];
    //后退指针
    struct zskiplistNode *backward;
    //分值
    double score;
    //成员对象
    robj *obj;
} zskiplistNode;

重点回顾