跳至主要內容

Redis 链表

blacklad小于 1 分钟RedisRedisRedis 设计与实现

Redis 链表

由于 C 语言没有内置的链表,Redis 自己构建了链表的实现。

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

从数据结构中可以看出,链表为双向的链表,通过 prevnext 指针指向前后的节点。

typedef struct list {
    // 表头节点
	listNode *head;
    // 表尾节点
    listNode *tail;
    // 链表节点长度
    unsigned long len;
    
    // 节点值复制、释放、节点值对比的函数
    ...

} list;

通过链表可以让部分获取 节点操作的时间复杂度为 O(1)

上次编辑于:
贡献者: blacklad