Redis的執行緒模型

mic_saber發表於2019-03-26

Redis為什麼這麼快?

很大原因上是因為Redis是一個事件驅動的服務端

 

Redis是一個事件驅動程式,伺服器需要處理兩類事件:
檔案事件:Reactor模式,file event handler,使用IO多路複用同時監聽多個socket請求,然後分發給不同的事件處理器
                    監聽的accept,read,write,close操作都對應的檔案事件就會產生,這時檔案事件處理器就會呼叫socket之前關聯好的事件處理器處理
                    雖然檔案處理器是單執行緒的方式執行,但是通過IO多路複用來監聽多個socket,檔案事件處理器既實現了高效能的網路通訊模型,又可以很好地與Redis伺服器中其他同樣以單執行緒方式執行的模組進行對接,這保持了Redis內部單執行緒設計的簡單性。

                    select epoll kqueue等,Redis會根據不同作業系統選擇不同的核心指令。

時間事件:時間事件一般是有兩種,一種是週期的,一種是定時的

 

相關文章