Redis-跳表
跳表(skiplist)是一种有序数据结构,它通过在每个节点维持多个指向其他节点的指针来达到快速访问的目的。Redis使用跳表作为有序表的底层实现。
Redis的有序集合和散列一样,也是健值对。有序集合的键是成员对象(其实就是一个简单动态字符串SDS),成员对象是各不相同的,有序集合的值是分值。比如有一个有序集合s,它的值集合为(m1,4)、(m2,6)、(m3, 8),则该有序集合的键为s,它的成员对象为m1、m2、m3,分值分别为4、6、8,有序集合就可以根据分值来将成员对象进行排序。
下面是一个添加的示例,添加完元素后执行zrange命令取出排序后的集合。
127.0.0.1:6379> zadd s 6 m2
(integer) 1
127.0.0.1:6379> zadd s 8 m3
(integer) 1
127.0.0.1:6379> zadd s 4 m1
(integer) 1
127.0.0.1:6379> zrange s 0 -1 withscores
1) "m1"
2) "4"
3) "m2"
4) "6"
5) "m3"
6) "8"
首先介绍下跳表这个数据结构
跳表
描述跳表之前我们先简单回顾下链表