Redis相关

Redis 跳跃表(skiplist)

2019-12-08  本文已影响0人  Oliver_Li
1. 跳跃表的原理
2. 跳跃表结构
《Redis5设计语言与源码分析》
typedef struct zskiplistNode {
    sds ele;  // 对应zset的字符串数据
    double score;   // 对应zset里的分值
    struct zskiplistNode *backward;  // 指向前一个节点
    // 用柔性数组代表图上列的高度
    struct zskiplistLevel {
        struct zskiplistNode *forward;  //指向本层的下个节点
        unsigned long span;  // 本层的下个节点跨了几个元素
    } level[];
} zskiplistNode;
typedef struct zskiplist {
    struct zskiplistNode *header, *tail;   // 如图代表头结点、尾节点
    unsigned long length;  //表长
    int level;  // 表高
} zskiplist;
3. 跳跃表实现
4. 跳跃表应用
上一篇下一篇

猜你喜欢

热点阅读