Redis数据结构之跳跃表

  跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。

 

一、跳跃表结构定义
1. 跳跃表节点结构定义:

2. 跳跃表结构定义:

示例:

 

二、跳跃表节点中各种结构的作用
1. 层:用于加快访问其他节点的速度,一般来说,层的数量越多,访问其他节点的速度就越快。
2. 前进指针:用于从表头向表尾方向访问节点。
3. 跨度:用于计算排位。在查找某个节点的过程中,将沿途访问过的所有层的跨度累计起来,得到的结果就是目标节点在跳跃表中的排位。
4. 后退指针:用于从表尾向表头方向访问节点。
5. 分值和成员:跳跃表中所有节点都按分值从小到大排序。

 

三、跳跃表在Redis中的用途
Redis只在两个地方使用到了跳跃表:
1. 作为有序集合键的底层实现之一: 如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。
2. 在集群节点中用作内部数据结构。

 

posted @   疯一样的狼人  阅读(377)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示