1. 程式人生 > >Redis數據結構之跳躍表

Redis數據結構之跳躍表

用途 bsp size 方向 示例 兩個 節點 pan ont

  跳躍表是一種有序數據結構,它通過在每個節點中維持多個指向其他節點的指針,從而達到快速訪問節點的目的。

一、跳躍表結構定義
1. 跳躍表節點結構定義:

技術分享圖片

2. 跳躍表結構定義:

技術分享圖片

示例:

技術分享圖片

二、跳躍表節點中各種結構的作用
1. 層:用於加快訪問其他節點的速度,一般來說,層的數量越多,訪問其他節點的速度就越快。
2. 前進指針:用於從表頭向表尾方向訪問節點。
3. 跨度:用於計算排位。在查找某個節點的過程中,將沿途訪問過的所有層的跨度累計起來,得到的結果就是目標節點在跳躍表中的排位。
4. 後退指針:用於從表尾向表頭方向訪問節點。
5. 分值和成員:跳躍表中所有節點都按分值從小到大排序。

三、跳躍表在Redis中的用途


Redis只在兩個地方使用到了跳躍表:
1. 作為有序集合鍵的底層實現之一: 如果一個有序集合包含的元素數量比較多,又或者有序集合中元素的成員是比較長的字符串時,Redis就會使用跳躍表來作為有序集合鍵的底層實現。
2. 在集群節點中用作內部數據結構。

Redis數據結構之跳躍表