链表提供了高效的节点重排能力,以及顺序访问节点并且可以通过增删节点来调整链表的长度。
LLEN integers
链表除了用作键之外,还与发布与订阅、慢查询、监视器等功能有关。redis本身用链表保存多个客户端的状态信息。
3.1 链表和链表及链表节点的实现
dup 函数用于复制链表节点所保存的值。
free函数用于释放所保存的值
match比较链表节点所保存的值和另一个输入的值是否县个洞。
redis的链表实现特性有以下总结:
1、双端:prev和next指针。
2、无环:第一个节点没有前驱 最后一个节点没有后继
3、有head\tail指针
4、有链表长度计数器
5、多态
3.2 链表和链表节点的API
3.3 重点回顾
- 链表被广泛用于实现Redis的各种功能,比如列表建、发布与订阅、慢查询、监视器等
- 每个链表节点由一个listNode结构来表示,每个节点都有一个指向前置和后置节的指针。
- 每个链表由一个
list
结构来表示,有头指针、尾指针以及长度等信息 - 无环链表
- 链表可以保存各种不同类型的值