1。准备操作环境

*设置对象句柄,zmalloc分配内存时,内存失败

*初始化随机种子,用于生成随机数。

*将服务器参数初始化为默认值。

*创建命令和处理函数的映射

2。解析命令行参数,loadserverconfig()解析配置文件

*配置文件覆盖命令行指定的参数

*无效的配置项或配置不合理的价值观会导致redis是超乎寻常的开始

三.initserver()初始化服务

*安装信号处理功能

*创建共享对象,使用预分配公共物品共享节省内存

*根据maxc例配置调整最大打开文件

*创建一个全局数据库字典,每个数据库对应一个字典

*监视网络端口,安装事件处理程序

*如果一打开,打开多种文件

*创建一个servercron定时器

4。loaddatafromdisk()加载数据从关系数据库或AOF文件

*负荷数据的错误,如文件格式混乱,导致使用不正常启动

*在加载过程中,Redis仍然可以处理请求,但大多数的请求回复加载错误

5。aemain()启动事件循环和接收客户端的请求

事件处理函数侦听文件描述符初始化为accepttcphandler,新建立的连接事件处理函数设置为readqueryfromclient,readqueryfromclient读取网络连接请求,解析请求参数和过程。