Redis服務器是一個事件驅動程式,服務器需要處理以下兩類事件:
- 檔案事件:Redis通過套接字與客戶端連接,檔案事件是服務器對套接字操作的抽象,
- 時間事件:Redis服務器中的一些操作需要給定的時間點執行,時間事件時對這類定時操作的抽象,
檔案事件
檔案事件處理器使用I/O多路復用同時監聽多個套接字,
檔案事件處理器的構成
檔案事件處理器的四個組成部分:套接字、I/O多路復用程式、檔案事件分派器以及事件處理器,

檔案事件是對套接字操作的抽象,每當一個套接字準備好執行連接應答(accept)、寫入、讀取、關閉等操作
時,就會產生一個檔案事件,一個服務器會連接多個套接字,所以多個檔案事件可能并發出現,
I/O多路復用程式負責監聽多個套接字,盡管會并發,但是產生事件都放到一個佇列里,以有序、同步、每次一個
套接字的方式向分派器傳送套接字,
I/O多路服用程式的實作
通過包裝select、epoll、evport和kqueue這些函式庫來實作的,提供相同的API,可以互換,
檔案事件的處理器
連接應答器
請求處理器
命令回復器
復制處理器
時間事件
未完待續
Reference
《Redis設計與實作》
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/304226.html
標籤:NoSQL
上一篇:redis
下一篇:Redis新舊復制
