- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 Redis源码整理笔记:adlist与个人理解
adlist采用双向链表的形式list 列表定义// 定义list列表typedef struct list { listNode *head; // list列表的头节点 listNode *tail; // list列表的尾节点 // dup、free、match 均用于回调使用 void *(*dup)(void *ptr); ...
2019-12-28 15:37:49 151
原创 Redis源码整理笔记:sds与个人理解
SDS结构图上图是sds的内存结构,sds 包括5种类型的header,Header部分主要包括len(表示当前字节数组的长度,不包括空终止符)、alloc(表示当前字节数组已分配的最大容量,不包括header和终止符)、flags(header的类型标识,若获取flags字段仅需要将s1指针前移一个字节);buf 保存了字节数组真正的值,s1指向的便是buf首部;s1 实际指向的是字符串开始...
2019-12-28 14:24:47 312
原创 Redis源码整理笔记:dict与个人理解
rehash过程—示意图(1) rehash前:(2) ht[0].size为4,所以设置ht[1]的大小为2*ht[0].size=8,并为ht[1]分配内存空间:(3) rehash 进行中,将ht[0]的所有键值移动到ht[1]中,rehash重新计算哈希值和索引值,然后将键值对保存到ht[1]的指定位置上(4) 将ht[0]的所有元素全部移动到ht[1]中(5)rehas...
2019-12-21 17:03:30 123
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人