Redis中的有序集合(Sorted Set)使用的是一种叫做"跳跃表"(Skip List)的数据结构作为其底层实现。
跳表
跳表是一种基于链表的数据结构,用于实现快速查找。相对于平衡树和哈希表等数据结构,它的实现更加简单,而且能够提供相对较快的查询、插入和删除操作。
简单来说,跳表就是在链表上加一个索引,比如上图中查找18,原本需要8次,但是加入一层索引后只需要五次,加入两层索引后只需要四次
需要注意的是,跳表在更新数据的时候,也要随之更新索引
在Redis中,跳跃表不仅用于有序集合,还被用于实现Redis中的有序集合命令中的一些辅助数据结构,例如,计算ZUNIONSTORE和ZINTERSTORE的时候会用到跳跃表来辅助实现。