《Redis設計與實現》第十二章 事件

Redis服務器是一個事件驅動程序,服務器需要處理一下兩類事件:
1、文件事件:Redis服務器通過套接字與客戶端(或者其他redis服務器)進行連接,而文件事件就是服務器對套接字操作的一抽象。
2、時間事件:Redis服務器的一些操作(ServerCron)需要在給定時間點執行。

12.1 文件事件

Redis基於Reactor模式開發了自己的網絡事件處理器file event handler

  • 文件事件處理器使用IO對路複用程序來同時監聽多個套接字,並根據套接字目前執行的任務來爲套接字關聯不同的事件處理器。
  • 當被監聽的套接字準備好執行連接應答、讀取、寫入、關閉等操作時,與操作相對應的文件事件就會產生,這時文件處理器就會調用套接字之前管理好的時間處理器來處理。

12.1.1 文件事件處理器的構成

-w404
-w637

12.1.2 IO多路複用程序的實現

-w731
-w421

12.1.3 事件的類型

io多路複用程序可以監聽多個套接字的ae.h/AE_READABLE時間。

-w737

12.1.4 API

-w716

12.1.5 文件事件的處理器

-w775
-w391
-w363
-w336

12.2 時間事件

  • 定時時間:在指定時間之後執行一次
  • 週期性時間:每隔一指定時間就執行一次。

-w697

12.2.1 實現

-w673

12.2.2 API

-w745

12.2.3 時間事件應用實例:serverCron函數

-w715
hz調整頻率

12.3 事件的調度與執行

-w381

-w739

12.4 重點回顧

-w683

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章