Redis数据结构_6_SkipList
SkipList详解
[toc]
SkipList是一个链表
- 元素按照升序排列
- 一个节点可能包含多个级别不同的指针,它们的跨度不同
- 最多允许32级指针
源码分析
以下是zset中使用的skiplist源码及示例图:
1 | typedef struct zskiplist { |
1 | typedef struct zskiplistNode { |
SkipList特点总结
- 是一个双向链表,每个节点都有ele和score值,分别用于存储数据和打分排序查找
- 节点按照score排序,score值相同时按照ele字典序
- 每个节点可能包含多个指针,层数为1到32
- 不同层级指针跨越的距离不同,层级越高跨度越大
- 增删改查效率较高,与红黑树类似,但实现简单
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LemontreeN's!