1. 概述

  跳跃表是一种有序的数据结构, 他通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的.

  大部分情况下, 跳跃表的效率可以和平衡树相媲美.

  Redis中只在两处用到了跳跃表, 一个是实现有序集合, 另一个是 集群节点中国用作内部数据结构.

2. 基本结构

Redis数据结构(6):skipList(跳跃列表)

typedef struct zskiplistNode {
    sds ele; //
    double score; // 分值
    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;

typedef struct zset {
    dict *dict; // 字典
    zskiplist *zsl; // 跳跃表
} zset;

 

相关文章:

  • 2021-05-31
  • 2021-09-18
  • 2021-06-14
  • 2021-06-30
  • 2022-12-23
  • 2021-06-07
  • 2021-09-25
  • 2021-07-22
猜你喜欢
  • 2021-12-29
  • 2021-06-30
  • 2021-11-29
  • 2021-09-07
  • 2021-10-13
  • 2021-04-25
相关资源
相似解决方案