參考了《redis設計與實現第二版》,然後花了一週業餘時間 把代碼擼了一遍,留下自己的筆記
整體框架
initServerConfig 主要是設置redis服務默認配置
loadServerConfig 對命令行傳入的參數和配置文件參數進行賦值和初始化,沒有配置的參數就採用initServerConfig默認配置
initServer 主要是服務完成初始化,包括client list 創建、共享常量字符串、調整文件句柄大小、網絡Reactor初始化、監聽套接字建立、數據庫db初始、時間事件初始化等等
loadDataFromDisk 主要是加載磁盤映射文件,aof or rdb方式
aeMain 是redis網絡事件核心,redis 採用reactor單線程方式處理client請求,底層封裝了epoll、select、evport、kqueue網絡api調用。