来自阿里P8面试官的绝杀,Redis跳跃究竟怎么跳?看完这篇涨薪10K

一、前言

Redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要。

来自阿里P8面试官的绝杀,Redis跳跃究竟怎么跳?看完这篇涨薪10K

备注: 按照分析顺序,本节应该说道有序集合对象了,但是考虑到有序集合对象的底层实现中使用到了跳跃表结构,避免在分析有序集合时造成突兀,所以本节先来看看 redis 中跳跃表结构的具体实现。

二、结构解析

Redis 的跳跃表由 redis.h/zskiplistNode 和 redis.h/zskiplist 两个结构定义,其中 zskiplistNode 结构用于表示跳跃表节点,而 zskiplist 结构则用于保存跳跃表节点的相关信息,比如节点的数量,以及指向表头节点和表尾节点的指针等。

来自阿里P8面试官的绝杀,Redis跳跃究竟怎么跳?看完这篇涨薪10K

图 5-1 展示了一个跳跃表示例, 位于图片最左边的是 zskiplist 结构, 该结构包含以下属性:

header :指向跳跃表的表头节点。 t

上一篇:断舍离与“优秀”推销员


下一篇:线性运放HCNR201-500E构成的模拟信号隔离放大电路