链表在 Redis 中的应用非常广泛, 比如列表键的底层实现之一就是链表: 当一个列表键包含了数量比较多的元素, 又或者列表中包含的元素都是比较长的字符串时, Redis 就会使用链表作为列表键的底层实现...除了链表键之外, 发布与订阅, 慢查询, 监视器等功能也用到了链表, Redis 服务器还使用链表保存多个客户端的状态信息, 以及使用链表来构建客户端输出缓冲区(output buffer).
1...., 然后将被弹出的节点插入到链表的表头, 成为新的表头节点 O(1)
listDup 复制一个给定链表的副本 O(N), N 为链表长度
listRelease 释放给定链表, 以及链表中的所有节点 O...为终点;
带表头指针和表尾指针: 通过 list 结构的 head 指针和 tail 指针, 获取表头和表尾节点的复杂度为 O(1);
带链表长度计数器: 通过 list 结构的 len 属性, 程序获取链表中节点数量的复杂度为...重点回顾
链表被广泛用于实现 Redis 的各种功能, 比如列表键, 发布与订阅, 慢查询, 监视器, 等等;
每个链表节点由一个 listNode 结构来表示, 每个节点都有一个指向前置节点和后置节点的指针