sortedSet的底层数据结构
参考链接:Redis为什么用跳表而不用平衡树?
- sortedSet底层采用的是跳表,跳表的特性如下
- 查找单个key,skiplist时间复杂度为O(log n)
- 跳表的本质是一个多层链表,最底层是完整的有序链表,从下往上依次按照一定的规则进行抽析,通过抽析来实现快速过滤无效数据。
- 跳表在多层链表的基础上,引入随机抽析的方法,每一个节点的层数都是随机生成的。
- 插入操作只需要修改插入节点前后的指针,而不需要对很多节点都进行调整。这就降低了插入操作的复杂度。这是skiplist的一个很重要的特性,这让它在插入性能上明显优于平衡树的方案。
- sortedSet和平衡树,hash表对比
- skiplist和各种平衡树(如AVL、红黑树等)的元素是有序排列的,而哈希表不是有序的。因此,在哈希表上只能做单个key的查找,不适宜做范围查找。所谓范围查找,指