Redis的链表结构
如上图所示,Redis链表由一个list和任意个listNode结构组成;
adlist.h/listNode结构:
typedef struct listNode{
//前指针
struct listNode *prev;
//后指针
struct listNode *next;
void *value;
}ListNode;
adlist.h/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;
Redis链表结构特点:双向,无环,具备表头和表尾指针,链表节点计算器,可保存不同类型;