Redis源码学习之【链表】
来源:互联网 发布:微信上打开淘宝链接 编辑:程序博客网 时间:2024/04/29 04:34
介绍
Redis自己实现了一个含有迭代器的双向链表。基本功能就是通用的双向链表,源码实现还是值得阅读以下的。
源文件
adlist.h adlist.c
分析
这里主要介绍其主要的数据结构其他的链表相关的操作有兴趣的话可以自己去看源码,其中的细节tricky还是挺多的。
/* Node, List, and Iterator are the only data structures used currently. *//* * 链表节点 */typedef struct listNode { // 前驱节点 struct listNode *prev; // 后继节点 struct listNode *next; // 值 void *value;} listNode;/* * 链表迭代器 */typedef struct listIter { // 下一节点 listNode *next; // 迭代方向 int direction;} listIter;/* * 链表 */typedef struct list { // 表头指针 listNode *head; // 表尾指针 listNode *tail; // 节点数量 unsigned long len; // 复制函数 void *(*dup)(void *ptr); // 释放函数 void (*free)(void *ptr); // 比对函数 int (*match)(void *ptr, void *key);} list;
- Redis源码学习之【链表】
- Redis源码学习之【链表】
- Redis源码学习之【前言】
- Redis源码学习之【前言】
- redis源码学习之字典
- Redis 源码学习之 Redis 事务
- Redis源码学习之【动态字符串】
- Redis源码学习之【内存分配】
- Redis源码学习之【哈希字典】
- Redis源码学习之【事件机制】
- Redis源码学习之【epoll封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【网络通信框架】
- Redis源码学习之【命令协议格式】
- Redis源码学习之【暂停说明】
- Redis源码学习之【事件机制】
- Redis源码学习之【动态字符串】
- Redis源码学习之【哈希字典】
- Linux OS download
- 常用命令查询
- 解压cpio文件
- HTML5最新资料大全
- 专业程序员必知必会的技巧:驯服复杂代码
- Redis源码学习之【链表】
- Ubuntu 下常用的软件工具
- 昨天31.5晚会报道Cookie揭露用户隐身。
- 读《软件随想录》
- vc++6.0的单步调试
- 二.Java的初始化机制、垃圾回收机制和内存分配机制
- 秒杀多线程第八篇 经典线程同步总结 关键段 事件 互斥量 信号量
- flex4.6 + openscales2.2 + geoserver2.02基本地图显示(坐标定位、初始比例、空间数据库配置及加载)
- 不是内部命令或外部命令,也不是可运行的程序或批处理文件