Redis adlist

adlist是redis的双向链表,比较简单,一目了然。

结构如下:

typedef struct listNode {
    struct listNode *prev;
    struct listNode *next;
    void *value;
} listNode;


typedef struct listIter {
    listNode *next;
    int direction;
} listIter;


typedef struct list {
    listNode *head;
    listNode *tail;
    void *(*dup)(void *ptr);
    void (*free)(void *ptr);
    int (*match)(void *ptr, void *key);
    unsigned long len;
} list;


iterator带direction,listRewind将当前的iterator变为初始的正向iterator,listRewindTail将当前的iterator变为初始的反向iterator。

你可能感兴趣的:(Redis adlist)