加载中
Redis源码阅读笔记-命令的接收和执行过程(二)

接着上一篇Redis源码阅读笔记-命令的接收和执行过程(一),主要写processCommand()的调用过程,和call()是如何调用各个命令的执行函数的。 processCommand() processCommand()主要作用是判断命...

2019/01/08 17:19
175
Redis源码阅读笔记-命令的接收和执行过程(一)

Redis会为监听端口的Server Socket的fd在事件循环中注册读就绪事件,并添加相应的handler进行处理。 void initServer(void) { ...... // 为监听的端口的fd设置epoll事件和回调, 针对TCP soc...

2018/12/20 16:42
313
Redis源码阅读笔记-事件和事件循环

Redis源码阅读笔记-事件和事件循环 Reids 是采用单线程和IO多路复用是处理来之客户端的请求的,其中主要用到了evport,epoll,kqueue,select四种多路复用(按优先顺序)。 其中evport应该是...

2018/12/18 11:45
316
Redis源码阅读笔记-服务器启动和初始化

服务器的启动 Redis服务器的main函数是在server.c中。 // server.c int main(int argc, char **argv) { struct timeval tv; int j; /* 对服务器一些常量等进行设置 */ /* We need to init...

2018/11/07 00:36
316
Redis源码阅读笔记-对象及其类型和编码

总结之《Redis设计与实现》 对象 Redis中是使用对象来便是数据库中的键和值。 结构 // server.h ... #define LRU_BITS 24 ... typedef struct redisObject { unsigned type:4; unsigned enc...

2018/09/22 11:23
88
Redis源码阅读笔记-快速列表

快速列表 快速列表(quicklist)是由压缩列表(ziplist)组成的一个双向链表,链表中,每一个节点都是以压缩列表(ziplist)的结构保存。 在 Redis3.2 后加入的新数据结构,在列表键中取代了双向链...

2018/09/20 21:32
109
Redis源码阅读笔记-压缩列表结构

压缩列表 《Redis设计与实现》 在Redis中,压缩列表(ziplist)是由一段有特定编码的内存块构成的列表,目的是为了节约内存。 压缩列表被用作列表键和哈希键的底层实现之一。 当一个列表键只包...

2018/09/16 16:08
52
Redis源码阅读笔记-整数集合结构

整数集合 《Redis设计与实现》 整数集合(intset)是Redis中集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素不多时,Redis就会使用整数集合作为集合键的底层实现。 在R...

2018/09/14 15:26
23
Redis源码阅读笔记-跳跃表结构

跳跃表 跳跃表 是一种有序的数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。它是基于有序链表,在链表的基础上,每个节点不止包含一个指针,还可能包含...

2018/09/13 15:45
67
Redis源码阅读笔记-字典结构

字典 字典在Redis中主要用在数据库和哈希键功能上,其他也有。 当一个哈希键包含的键值对比较多,又或者键值对中的元素都是比较长的字符串时,Redis就会使用字典作为哈希键的底层实现。(《R...

2018/09/09 11:42
101
Redis源码阅读笔记-链表结构

链表 Redis中是自己实现的链表。链表被广泛用于Redis的各种功能,比如列表键、发布于订阅、慢查询、监视器等。 列表键的底层实现之一就是链表(Redis3.2 之前,在Redis3.2 后被换成了快速列表...

2018/09/06 13:22
71
Redis源码阅读笔记-动态字符串(SDS)结构

Redis中采用自定义的结构来保存字符串,在sds.h中: /* Note: sdshdr5 is never used, we just access the flags byte directly. However is here to document the layout of type 5 SDS str...

2018/09/05 22:44
236

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部