Redis源码研究--跳表
-------------6月29日--------------------简单看了下跳表这一数据结构,理解起来很真实,效率可以和红黑树相比。我就喜欢这样的。
1 typedef struct zskiplist {
2 struct zskiplistNode *header, *tail;
3 unsigned long length;
4 int level;
5 } zskiplist;
跳表包括头、尾、长度、层数。
1 typedef struct zskiplistNode {
2 robj *obj;
3 double score;
4 struct zskiplistNode *backward;
5 struct zskiplistLevel {
6 struct zskiplistNode *forward;
7 unsigned int span;
8 } level[];
9 } zskiplistNode;
一个指针指向左边的,指向右边的有多个。
-----------------------6月30日--------------
1 typedef struct zset {
2 dict *dict;
3 zskiplist *zsl;
4 } zset;
-------------------7月2日--------------------
跳表在Redis中的唯一应用是zset。用的多的数据结构还是sds和dict。
页:
[1]