程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Redis教程 >> 關於Redis >> redis啟動流程介紹

redis啟動流程介紹

編輯:關於Redis

1. 准備運行環境

* 設置oom handler,zmalloc分配內存失敗時調用
* 初始化隨機種子,用於生成隨機數
* 將server參數初始化為默認值 
* 創建命令與處理函數的映射表

2. 解析命令行參數、loadServerConfig()解析配置文件

* 配置文件會覆蓋命令行指定的參數
* 無效的配置項或者不合理的配置值會導致redis無法正常啟動

3. initServer()初始化服務

* 安裝信號處理函數 
* 創建共享對象,redis預分配好常用的對象用於共享,以節省內存 
* 根據maxc lients配置調整max open files
*  創建全局db字典,每個db對應一個dict 
* 監聽網絡端口,安裝事件處理器 
* 如果開啟了aof,打開aof文件 
* 創建serverCron定時器

4. loadDataFromDisk()從rdb或aof文件加載數據

* load數據出錯(比如文件格式亂掉)等會導致redis不能正常啟動
* loading的過程中,redis仍能處理請求,但大部分請求都會回復-LOADING錯誤

5. aeMain()開始事件循環,接收客戶端請求

監聽文件描述符的事件處理函數初始化為acceptTcpHandler,新建立的連接的事件處理函數設置為readQueryFromClient,readQueryFromClient從網絡連接上讀取請求,解析出請求參數並處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved