redis啟動流程介紹

來源:互聯網
上載者:User

標籤:

轉載於:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/114.html?1455860562

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從網路連接上讀取請求,解析出請求參數並處理。

 

redis啟動流程介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.