redis list

引言

本章介绍 redis的一些链表式的数据结构,在 redis 中类链表的数据结构有

adlist

一个简单的双向链表,实在太简单,不展开

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;

ziplist

ziplist 是一个压缩的双向链表,它可以用来存储字符串和数字,其设计十分紧凑,在同一块内存中存储一系列的数字或字符串。

zlbyteszltailzllenentryentryentryzlend

quicklist

listpack