参考了《redis设计与实现第二版》,然后花了一周业余时间 把代码撸了一遍,留下自己的笔记
整体框架
initServerConfig 主要是设置redis服务默认配置
loadServerConfig 对命令行传入的参数和配置文件参数进行赋值和初始化,没有配置的参数就采用initServerConfig默认配置
initServer 主要是服务完成初始化,包括client list 创建、共享常量字符串、调整文件句柄大小、网络Reactor初始化、监听套接字建立、数据库db初始、时间事件初始化等等
loadDataFromDisk 主要是加载磁盘映射文件,aof or rdb方式
aeMain 是redis网络事件核心,redis 采用reactor单线程方式处理client请求,底层封装了epoll、select、evport、kqueue网络api调用。