Redis 源码分析

基于 4.0.2 版本

目录结构

redis 的代码大都位于 src 目录下。

数据结构

常见结构体定义

基本数据类型

启动过程

入口文件位于 server.c 文件,main 函数。

生命周期

整个生命周期可以概括为以下 4 个步骤。

  1. 初始化服务器配置
  2. 加载配置文件
  3. 初始化服务器
  4. 开启事件循环

对应代码来看

int main(int argc, char **argv) {
    struct timeval tv;
    int j;
    ...
    // 初始化服务器配置
    initServerConfig();
    ...
    // 读取配置文件
    if (argc >= 2) {
        ...
    }
    ...
    // 初始化服务器
    initServer();
    ...
    // 开启事件循环
    aeSetBeforeSleepProc(server.el,beforeSleep);
    aeSetAfterSleepProc(server.el,afterSleep);
    aeMain(server.el);
    aeDeleteEventLoop(server.el);
    // 结束
    return 0;
}

功能实现

参考