Redis 中有序集合(Sorted Set / ZSet)通过 组合跳跃表(Skip List)和哈希表(Hash Table) 实现高效的数据存储与操作,其核心设计兼顾了排序性能与快速查找。以下是具体实现原理:
🔍 一、底层数据结构组合
-
跳跃表(Skip List)
- 作用:维护元素按分数(Score)排序的序列,支持快速的范围查询、插入和删除。
- 结构特点:
- 多层链表结构,底层包含所有元素,上层为下层的子集(类似“快速通道”)。
- 每个节点包含 前进指针(指向后续节点)和 跨度值(记录到下一节点的距离,用于计算排名)。
- 插入新元素时,通过 随机算法 确定节点层级(层数越高,概率越低),平均时间复杂度为 O(log N)[citation:3][citation:5]。
- 优势:相比平衡树(如红黑树),实现更简单且查询效率相当(O(log N))。
-
哈希表(Hash Table)
- 作用:存储元素(Mem