Redis
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
最新文章
- 企业IT管理员IE11升级指南【7】—— Win7和Win8.1上的IE11功能对比
- tomcat的简单安装及配置
- Tomcat 解压版安装
- maven添加sqlserver的jdbc驱动包
- strtol,strtoll,strtoul, strtoull字符串转化成数字
- UITableView和UICollectionView的方法学习一
- (转)教你实现Winform窗体的四边阴影效果
- asp.net的CascadingDropDown取值和赋值
- 接口和JAVA设计模式
- [转]BeagleBone Black USB一线通(2)
- PHP面向对象(OOP):__call()处理调用错误
- C#中静态类、静态方法和静态变量的简单说明
- Iterator、Iterable接口的使用及详解
- centos 10字母随机文件病毒清理
- Cmake新手使用日记(1)【C++11下的初体验】
- CentOS 6.5 安装MySQL过程
- Python学习_06_文件、IO
- IntelliJ IDEA如何激活?
- php内核一些常识
- spring资源加载结构解析
热门文章
- setTimeout 和 throttle 那些事儿
- BZOJ2117: [2010国家集训队]Crash的旅游计划
- Mysql支持的数据类型(总结)
- Python:eval的妙用和滥用
- 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)
- UML大战需求分析--阅读笔记3
- HMM基本原理及其实现(隐马尔科夫模型)
- js原生dom方法总结
- 使用powershell批量添加Keil和IAR的头文件路径
- 第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash