网站推广营销效果,公司部门聚餐计入什么科目,易语言如何做网站吗,关于做网站的书籍文章目录启动过程初始化server结构体main函数会调用initServer函数初始化服务器状态载入持久化文件#xff0c;还原数据库开始监听事件流程图启动过程
初始化server结构体从配置文件夹在加载参数初始化服务器载入持久化文件开始监听事件
初始化server结构体
服务器的运行ID…
文章目录启动过程初始化server结构体main函数会调用initServer函数初始化服务器状态载入持久化文件还原数据库开始监听事件流程图启动过程
初始化server结构体从配置文件夹在加载参数初始化服务器载入持久化文件开始监听事件
初始化server结构体
服务器的运行IDredis使用的默认端口号是在server.h定义的CONFIG_DEFAULT_SERVER_PORT 6379LRU时钟主从备份相关参数命令表慢查询参数接着会保存当前执行的路径和参数为之后的服务器重启使用相同的参数做准备server.executable getAbsolutePath(argv[0]); server.exec_argv zmalloc(sizeof(char*)*(argc1)); server.exec_argv[argc] NULL; for (j 0; j argc; j) server.exec_argv[j] zstrdup(argv[j]);
main函数会调用initServer函数初始化服务器状态
进程ID客户端链表从库链表为常用值创建共享对象初始化事件循环器打开TCP开始监听套接字创建服务器的数据库并初始化内部状态为serverCron定时器创建时间事件定时器如果开启了AOF打开AOF文件之后恢复数据时需要用到初始化慢查询日志模块初始化后台IO模块
载入持久化文件还原数据库
初始化完服务器的状态后服务器已经处于一个可启动状态因为redis有持久化特性服务器还需要加载相应的文件来还原之前数据库的数据。 判断Redis当前开启了哪种模式如果是AOF则通过AOF还原数据库的数据否则载入RDB文件通过RDB文件还原数据库的数据。
开始监听事件
main函数会设置beforeSleep和afterSleep回调函数然后调用aeMain函数启动事件循环器开始监听事件。aeMain函数是一个死循环不断的监听新请求的到来。
/** server启动后main函数的最终步骤不断地调用beforesleep和aeProcessEvents*/
void aeMain(aeEventLoop *eventLoop) {eventLoop-stop 0;while (!eventLoop-stop) {if (eventLoop-beforesleep ! NULL)eventLoop-beforesleep(eventLoop);aeProcessEvents(eventLoop, AE_ALL_EVENTS|AE_CALL_AFTER_SLEEP);}
}流程图
初始化结构体 定义变量初始化基本属性 加载配置文件设置属性初始化服务器 初始化数据结构常用共享对象 载入持计划文件加载数据开始监听事件