《Redis设计与实现》第三章总结:链表

2.链表

C语言没有实现链表,因此Redis自己实现了一套

列表(list)键的底层实现之一就是链表,当一个列表键包含了较多元素,或元素都是比较长的字符串,则会使用链表作为列表键的底层实现,如integers列表键,链表中的每个节点都保存了一个整数值
发布与订阅、慢查询、监视器等也用到了链表

2.1 实现

链表节点(adlist.h/listNode)表示如图:
在这里插入图片描述

由list(adlist.h/list)来组成链表,表示如图:
在这里插入图片描述

可以看到,list还包含了几个用于实现多态链表所需的类型特定函数,因为listNode中的value类型为void指针,且使用dup、free、match三个方法(参数都是void)为节点值设置类型特定函数,,因此可以保存不同类型的值,
方法具体作用如下图:
在这里插入图片描述

链表示例如图:
在这里插入图片描述

2.2 特性

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值