您的位置:首页 > 数据库 > Redis

Redis实现原理(1)--链表

2014-08-03 01:30 351 查看
链表是Redis中使用非常广泛的一种数据结构,很多地方如List结构底层就是用链表实现的。

链表的定义在头文件adlist.h 中,很常见的双向链表,结构如下:

// 链表节点
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: