- 1
- 0
- 约8.71千字
- 约 8页
- 2017-01-05 发布于辽宁
- 举报
Redis源码解析——双向链表
Redis源码解析——双向链表
相对于之前介绍的字典和SDS字符串库,Redis的双向链表库则是非常标准的、教科书般简单的库。但是作为Redis源码的一部分,我决定还是要讲一讲的。
基本结构
首先我们看链表元素的结构。因为是双向链表,所以其基本元素应该有一个指向前一个节点的指针和一个指向后一个节点的指针,还有一个记录节点值的空间
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
typedef struct listNode {
struct listNode *prev;
struct listNode *next;
void *value;
} listNode;
因为双向链表不仅可以从头开始遍历,还可以从尾开始遍历,所以链表结构应该至少有头和尾两个节点的指针。
但是作为一个可以承载各种类型数据的链表,还需要链表使用者提供一些处理节点中数据的能力。因为这些数据可能是用户自定义的,所以像复制、删除、对比等操作都需要用户来告诉框架。在《Redis源码解析——字典结构》一文中,我们看到用户创建字典时需要传入的dictType结构体,就是一个承载数据的上述处理方法的载体。但是Redis在设计双向链表时则没有使用一个结构来承载这些方法,而是在链表结构中定义了
[c
您可能关注的文档
最近下载
- 储能电站运维方案.docx VIP
- 广发证券-康宁杰瑞制药~B-9966.HK-差异化平台+ADC产品矩阵前景可期.pdf
- 2026年高考数学终极冲刺压轴01 抽象函数与嵌套函数的6大核心题型(原卷版).pdf VIP
- 医药市场细分与目标市场选择.pptx VIP
- 2023-2024学年山东省聊城市青岛版三年级下册期中考试数学试卷【含答案】.pdf VIP
- DELTA台达 温控器DTE10T系列主机操作手册-操作指南.pdf
- 2025年法律职业伦理考试题及答案.docx VIP
- TBT-5-1993 客车运行区间牌.pdf VIP
- T_CSEE 0123—2019 特高压交流变压器风险评估导则.docx VIP
- 第7章医药市场细分与目标市场 .pptx VIP
原创力文档

文档评论(0)