![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
命中无时必强求
这个作者很懒,什么都没留下…
展开
-
redis源码分析[01]-双向链表结构-队列的底层实现-adlist
1. redis的 list类型的底层实现就是用的双向链表-adlist,以下是数据结构 typedef struct listNode {//链表的节点结构 struct listNode *prev;//指向上一个节点的指针 struct listNode *next;//指向下一个节点的指针 void *value;//实际存储的值 } listNode; ...原创 2019-08-22 15:47:48 · 127 阅读 · 0 评论 -
redis源码分析[02]-事件处理-ae.c
1.redis所有事件都被保存在一个aeEventLoop的结构中,一类是文件事件,另一类是时间事件 /* 文件事件 */ typedef struct aeFileEvent { int mask; /* 事件的状态,读事件,写事件 */ aeFileProc *rfileProc;//读事件发生时要执行的读操作 aeFileProc *wfileProc;//写...原创 2019-08-22 17:06:57 · 163 阅读 · 0 评论 -
redis源码分析[05]-字典结构及其算法-dict.c
redis的字典是由hash表实现的,一个字典有两个hash表,一个正式使用,另一个作扩容临时使用,一个hash表有多个节点,每个节点保存一个键值对。以下是字典相关的数据结构: //节点结构,自带一个指向下一个节点的指针,用来防重 typedef struct dictEntry { void *key; union { void *val; ...原创 2019-08-26 11:52:22 · 156 阅读 · 0 评论 -
redis源码分析[06]-简单动态字符串-sds.c
redis并没有直接使用c语言的字符串类型,而是和申请内存一样,在每个字符串的前面做了标记.下面是结构说明 typedef char *sds; struct __attribute__ ((__packed__)) sdshdr5 { unsigned char flags; /* 前3位表类型,后5位表长度 */ char buf[]; }; struct __attri...原创 2019-08-29 16:06:05 · 135 阅读 · 0 评论