1。准备
操作环境
*
设置对象句柄,zmalloc分配
内存时,内存失败
*初始化随机种子,用于生成随机数。
*将
服务器
参数初始化为
默认值。
*
创建命令和
处理函数的映射
2。解析命令行参数,loadserverconfig()解析
配置文件 *配置文件覆盖命令行指定的参数
*无效的配置项或配置不合理的价值观会导致redis是超乎寻常的开始
三.initserver()初始化服务
*
安装信号处理
功能 *创建共享对象,使用预分配公共物品共享节省内存
*根据maxc例配置
调整最大打开文件
*创建一个全局数据库字典,每个数据库对应一个字典
*监视
网络端口,安装事件处理
程序 *如果一打开,打开多种文件
*创建一个servercron定时器
4。loaddatafromdisk()加载数据从关系数据库或AOF文件
*负荷数据的
错误,如文件格式混乱,导致使用不正常
启动 *在加载过程中,Redis仍然可以处理请求,但大多数的请求回复加载错误
5。aemain()启动事件循环和接收客户端的请求
事件处理函数侦听文件描述符初始化为accepttcphandler,新建立的
连接事件处理函数设置为readqueryfromclient,readqueryfromclient读取
网络连接请求,解析请求参数和过程。