Redis链表

2018-11-20  本文已影响0人  没有故事的老大爷

学习链接:Redis设计与实现

1. list结构和listNode结构组成链表

typedef struct listNode {

    // 前置节点
    struct listNode *prev;

    // 后置节点
    struct listNode *next;

    // 节点的值
    void *value;

} 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;

虽然仅仅使用多个 listNode 结构就可以组成链表, 但使用 adlist.h/list 来持有链表的话, 操作起来会更方便


2. 特性

Redis 的链表实现的特性可以总结如下:

API

作者 @没有故事的老大爷
一个人至少拥有一个梦想,有一个理由去坚强。

上一篇 下一篇

猜你喜欢

热点阅读