Redis源码笔记
文章平均质量分 65
zhang994125301
这个作者很懒,什么都没留下…
展开
-
源码笔记4.跳跃表skiplist
数据结构//跳跃表节点/* ZSETs use a specialized version of Skiplists */typedef struct zskiplistNode { robj *obj; // 成员是redis对象 double score; // 分数 struct zskiplistNode *backward; // 后退指针 struct zskiplistLevel { struct zskiplistNode *for原创 2021-04-25 21:18:57 · 127 阅读 · 0 评论 -
源码笔记3.字典dict
数据结构// 字典的节点typedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; } v; // 指向下个哈希表节点,形成链表 struct dictEntry *next;} dictEntry;// 字典类型的特定函数typedef struct dictType { // 计算哈希值的函原创 2021-03-17 12:33:08 · 285 阅读 · 0 评论 -
源码笔记2.双端链表adlist
数据结构// 链表节点结构typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点值 void *value;} listNode;链表节点包含前置和后置节点的指针。// 链表结构typedef struct list { // 表头节点 listNode *head; // 表尾节点原创 2021-03-17 10:45:18 · 152 阅读 · 0 评论 -
源码笔记1.简单动态字符串SDS
数据结构:/* * simple dynamic string */typedef char *sds;/* * simple dynamic string header */struct sdshdr{ int len; // buf数组中已使用的长度 int free; // buf数组中剩余长度 char buf[]; // 存放字符的数组 知识点关键词: C99 柔性数组结构成员};显而易见,sds本身是个char类型的数据。而char类型和C语言原创 2021-03-16 21:11:29 · 259 阅读 · 0 评论 -
我的Redis源码笔记
2020年在公司读了黄健宏(huangz)的作品《Redis设计与实现》,有被作者感动到。作为一本技术类书籍,讲的十分流畅,读起来没有阻塞感,也不需要反复的跳来跳去的阅读。后面在实际项目中,负责Redis相关工作时,会反复掏出《Redis设计与实现》这本书来查阅。但是在思考一些细节时,发现自己根本就不了解,只是通过作者的书知道了大量概念而已。2021年又是春节疫情严控,下定决心把redis源码好好读一遍。为了贴近书中的知识结构,我也是从Redis官方github下载了3.0版本的源码。链接:ht原创 2021-03-16 21:00:07 · 299 阅读 · 1 评论