目录
一、前言
链表在 Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时, Redis就会使用链表作为列表键的底层实现。
除了链表键之外,发布与订阅、慢査询、监视器等功能也用到了链表, Redis服务器本身还使用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区。
二、链表和链表节点的实现
每个链表节点使用listNode结构来实现
typedef struct listNode{
struct listNode* prev;//前置节点
struct listNode* next;//后置节点
void *value;//节点的值
}listNode;
多个listNode可以通过prev和next指针组成双端链表,如图所示。