一、概述
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。
链表在redis中的应用非常广泛,列表键的底层就是链表。发布订阅、慢查询、监视器等功能也用到了链表。
二、数据结构
链表节点
一个链表包含多个链表节点,多个listNode可以通过prev和next组成双端链表。
链表
List结构为链表提供了表头指针head、表尾指针tail以及链表长度计数器len。
特性:
双端链表,获取某个节点的前置节点和后置节点的复杂度都是O(1)
无环:表头和表尾节点都是null,对链表的访问以null为终点
带表头指针和表尾指针,程序获取其的复杂度为O(1)
带链表长度计数器,获取节点数量的复杂度为O(1)
通过为链表设置不同类型特定函数,redis的链表可以用于保存各种不同类型的值。