阅读Redis源码(三) — redis通信协议与事件驱动

在redis中,关于事件驱动框架的代码集中在ae.h/ae.c中.作者也在头部设置了介绍:a simple event-driven programming library. 这个框架其实很简单,核心就是一个消息 队列,同时只有一个线程负责对其进行处理,这里面的调度思想,还是简单的优先级队列,文件操作优先级永远高于时间操作.而且任务之间并不会进行抢占. 具体执行过程,可以参照如下干特图: time…

阅读Redis源码(二) — 数据库及持久化策略

之前的一篇文章写了关于Redis的字典数据结构,但是,他并不是与我们直接交互的.因为我们在进行添加字段的时候,往往需要添加过期值,这一点我们在字典数据结构中没有能够得到体现. 所以,我们需要关注另外一个数据结构,redisDb.即Redis的数据库储存,在redis.h中,该结构体的定义如下. typedef struct redisDb { dict *dict; /* The keyspace…

阅读Redis源码(一) — 基本数据结构

调试环境搭建 下载redis源代码包,可以访问“redis”官网进行下载.这边,我使用的是2.8.13的稳定版本. 解压之后使用eclipse for c/c++导入工程,选项是依据makefile的那项. 导入之后会出现一个语法错误,但事实上,这个错误是可以乎略的.就是在热带开始redis.c的第2969行,会有如下的代码: snprintf(buf,1024*16,as…

Kohana框架请求分发流程

下载Kohana框架代码,可以看到如下的目录结构 其中index.php是程序的主入口,他的主要作用如下: 设置application,module,system的路径 设置Error reporting的等级 如果存在安装文件,就加载它 引导文件,将APPPATH/bootstrap.php引入 可知,故事的开始从index.php开始。 然后,我们可以到bootstrap.php中一探究竟. …

杭州第一周(无关技术)

好久没有写博客了。主要是因为前一段时间的期末考试,和最近一周在杭州实习。昨天为了开通电视和和房东更新洗衣机和煤气灶,忙了好久,到下午才结束,然后想去采购,结果到了商场才发现自己身上只有50块钱。。。悲剧的买了点泡面,和筷子洗发露等,正好45,然后15去吃了个饭。 今天,就因为网线和快递的问题,去了趟公司和办宽带的地方,结果,宽带很顺利,一个上午就连安装都好了,然后快递,这就是麻烦了。应该是找不到了…