1. sds类型

sds为一种抽象数据结构 

typedef char *sds;
struct sdshdr {
 // buf 已占用长度
int len;
 // buf 剩余可用长度
int free;
 // 实际保存字符串数据的地方
char buf[];
};

2.sds的基本api

 

3. 双端链表

 

其中,listNode 是双端链表的节点:
typedef struct listNode {
// 前驱节点
struct listNode *prev;
// 后继节点
struct listNode *next;
// 值
void *value;
} listNode;

  而list 则是双端链表本身:

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;

4.双端链表的基本api

5.字典  

/*
* 字典
**
每个字典使用两个哈希表,用于实现渐进式rehash
*/
typedef struct dict {
// 特定于类型的处理函数
dictType *type;
// 类型处理函数的私有数据
void *privdata;
// 哈希表(2 个)
dictht ht[2];
// 记录rehash 进度的标志,值为-1 表示rehash 未进行
int rehashidx;
// 当前正在运作的安全迭代器数量
int iterators;
} dict;

6.字典API

  

最新文章

  1. 企业IT管理员IE11升级指南【7】—— Win7和Win8.1上的IE11功能对比
  2. tomcat的简单安装及配置
  3. Tomcat 解压版安装
  4. maven添加sqlserver的jdbc驱动包
  5. strtol,strtoll,strtoul, strtoull字符串转化成数字
  6. UITableView和UICollectionView的方法学习一
  7. (转)教你实现Winform窗体的四边阴影效果
  8. asp.net的CascadingDropDown取值和赋值
  9. 接口和JAVA设计模式
  10. [转]BeagleBone Black USB一线通(2)
  11. PHP面向对象(OOP):__call()处理调用错误
  12. C#中静态类、静态方法和静态变量的简单说明
  13. Iterator、Iterable接口的使用及详解
  14. centos 10字母随机文件病毒清理
  15. Cmake新手使用日记(1)【C++11下的初体验】
  16. CentOS 6.5 安装MySQL过程
  17. Python学习_06_文件、IO
  18. IntelliJ IDEA如何激活?
  19. php内核一些常识
  20. spring资源加载结构解析

热门文章

  1. setTimeout 和 throttle 那些事儿
  2. BZOJ2117: [2010国家集训队]Crash的旅游计划
  3. Mysql支持的数据类型(总结)
  4. Python:eval的妙用和滥用
  5. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)
  6. UML大战需求分析--阅读笔记3
  7. HMM基本原理及其实现(隐马尔科夫模型)
  8. js原生dom方法总结
  9. 使用powershell批量添加Keil和IAR的头文件路径
  10. 第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash