Redis 链表
小于 1 分钟RedisRedisRedis 设计与实现
Redis 链表
由于 C 语言没有内置的链表,Redis 自己构建了链表的实现。
typedef struct listNode {
struct listNode *prev;
struct listNode *next;
void *value;
} listNode
从数据结构中可以看出,链表为双向的链表,通过 prev
和 next
指针指向前后的节点。
typedef struct list {
// 表头节点
listNode *head;
// 表尾节点
listNode *tail;
// 链表节点长度
unsigned long len;
// 节点值复制、释放、节点值对比的函数
...
} list;

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