redis系列5---底层数据结构之链表

129 阅读1分钟

1、链表的优点

提供高效的节点重排能力
顺序性的节点访问方式
灵活地调整链表的长度

2、哪里用到了链表?

列表键
发布与订阅
慢查询
监视器
保存多个客户端的状态信息
构建客户端输出缓冲区

3、认识链表?

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

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;