1、跳跃表 redis使用跳跃表在两个地方:实现有序集合键?集群节点中用作内部数据结构? 一种有序的数据结构,在每个节点维护多个指向后续节点的指针,完成快速访问后续节点的功能,即就是链表增加了多级索引
Redis的跳跃表由如下:两个结构定义,其中 zskiplistNode结构用于表示跳跃表节点,而 zskiplist结构则用于保存跳跃表节点的相关信息,比如节点的数量,以及指向表头节点和表尾节点的指针等等
typedef struct zskiplistNode { robj *obj; double score; struct zskiplistNode *backward; struct zskiplistLevel { struct zskiplistNode *forward; unsigned int span; } level[]; } zskiplistNode; typedef struct zskiplist { struct zskiplistNode *header, *tail; //分别指向跳跃表的表头节点、表尾节点 unsigned long length; //跳跃表的个数 int level; //跳跃表中所有节点的最大层数(表头节点的层数不计算在内) } zskiplist;
原文地址:https://www.cnblogs.com/bailuoxi/p/11637058.html
时间: 2024-10-12 12:12:23