Redis 是如何提供服务的

在刚刚接触 redis 的时候,最想要知道的是一个 'set name Jhon' 命令到达 redis 服务器的时候,它是如何返回 'OK' 的?里面命令处理的流程如何,具体细节怎么样?你一定有问过自己。阅读别人的代码是很枯燥的,但带着好奇心阅读代码,是一件很兴奋的事情,接着翻到了 redis 源码的 main() 函数。

redis 在启动做了一些初始化逻辑,比如配置文件读取,数据中心初始化,网络通信模块初始化等,待所有初始化任务完毕后,便开始等待请求。

当请求到来时,redis 进程会被唤醒,原理是 epoll. select, kqueue 等一些 I/O 多路复用的系统调用。如果有阅读上一章节,应该理解这一句话。接着读取来来自客户端的数据,解析命令,查找命令,并执行命令。

执行命令 'set name Jhon' 的时候,redis 会在预先初始化好的哈希表里头,查找 key='name' 对应的位置,并存入。

最后,把回复的内容准备好回送给客户端,客户端于是收到了 'OK'. 接下来,我们看看详细的过程是怎么样的。

results matching ""

    No results matching ""