REDIS的双向链表和一般的双向链表差不多,一个链表有一个链表头(list)来管理一个链表(listNode)。只是在链表头中增加了几个操作函数。
链表头:
typedef struct list {
// 表头指针
listNode *head;
// 表尾指针
listNode *tail;
// 节点数量
unsigned long len;
// 复制函数
void *(*dup)(void *ptr);
// 释放函数
void (*free)(void *ptr);
// 比对函数
int (*match)(void *ptr, void *key);
} list;