[redis设计与实现][2]基本数据结构——链表

链表在Redis中的应用:

* 列表键
* 发布与订阅
* 慢查询
* 监视器等

链表节点:
[cce lang="c"]
typedef struct listNode {
struct listNode *prev;
struct listNode *next;
void *value;
} listNode;
[/cce]

链表结构:
[cce lang="c"]
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;
[/cce]

Redis链表特性:

* 双向链表:prev,next指针
* 无环:终点节点指向NULL
* 带表头指针和表尾指针
* 带链表长度计数器
* 多态:数据采用void*指针,通过三个函数指针,来操作不同类型的值

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据