题目
介绍 Redis 的 skiplist
答案
什么是跳跃表可以直接看这里:[https://itmtx.cn/question/335](https://itmtx.cn/question/335)
## Redis skiplist 的定义
**跳跃表 skiplist**:

**跳跃表节点 zskiplistNode**:

`obj`(成员对象):节点所保存的成员对象
`backward`(后退指针):每个节点都带有一个高度为 1 层的后退指针,用于从表尾方向向表头方向迭代:当执行 ZREVRANGE 或 ZREVRANGEBYSCORE 这类以逆序处理有序集的命令时,就会用到这个属性
`score`(分值):在跳跃表中,节点 zskiplistNode 按各自所保存的分值从小到大排列
`level[]`(层):每个层都带有两个属性,前进指针 forward 和跨度 span
- forward 用于访问同一层的下一个节点(后继节点)
> **所以 redis skiplist 也是个双端链表**,`backward`与 `forward` 是构成双端链表的指针
- 跨度记录了 forward 所指向节点和当前节点的距离

程序可以通过这些层来加快访问其他节点的速度,一般来说,层的数量越多,访问其他节点的速度就越快
