1. 前言
上一章节介绍了 SDS 数据结构,即 Redis 最基础的 Key-Value 存储实现,本章节继续介绍 Redis 底层的高级数据结构。
Redis 的五种基本结构中还有一个叫做 zset 的数据结构,zset 保证了每个值的唯一性,这方面性质同传统的 set 集合,也可以对每个值赋予 score,按照 score 进行排序。这种高级性质依赖于底层的跳跃表数据结构实现。
2. SkipList
2.1 SkipList 数据结构
面试官提问: Redis zset 数据结构的底层实现是什么?为什么要使用跳跃表?
题目解析:
在介绍跳跃表(SkipList,简称跳表)之前,我们可以以单链表数据结构作为对比。
在单链表中,我们查询一个元素的时间复杂度是 O (N),其中 N 是链表的长度