原创

Redis基本数据结构-SkipList


SkipList

skipList(跳表)首先是链表,但与传统链表相比有几点差异:

  • 元素按照升序排列存储
  • 节点可能包含多个指针,指针跨度不同。

微信截图_20230206232250

指针层级最多允许32层

微信截图_20230206233334

上面是第一层级依次叠加,如下图

微信截图_20230206233353

SkipList的特点:

  • 跳跃表是一个双向链表,每个节点都包含score和ele值
  • 节点按照score值排序,score值一样则按照ele字典排序
  • 每个节点都可以包含多层指针,层数是1到32之间的随机数
  • 不同层指针到下一个节点的跨度不同,层级越高,跨度越大
  • 增删改查效率与红黑树基本一致,实现却更简单
redis原理
数据结构
  • 作者:陌攻(联系作者)
  • 发表时间:2023-02-08 02:56
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论