首页
/
每日頭條
/
圖文
/
讓人秒懂的redis的事件處理機制
讓人秒懂的redis的事件處理機制
更新时间:2026-01-27 02:54:40

Redis服務器是一個事件驅動的程序,有以下兩類事件:

  • 文件事件:Redis服務器通過套接字與客戶端或者其他的Redis服務器連接,而文件事件就是服務器套接字操作的抽象。與客戶端或者其它服務器通信産生相應的文件事件,服務器通過監聽處理這些事件來完成一系列的網絡通信操作。
  • 時間事件:Redis服務器中的一些操作(如serverCron函數)需要在給定的時間點執行,而時間事件就是服務器對這類定時操作的抽象。

讓人秒懂的redis的事件處理機制(圖解Redis-事件實現機制)1

時間處理器結構

文件事件

Redis基于Reactor模式開發了自己的網絡事件處理器,利用IO多路複用程序來監聽套接字,當監聽到連接應答、讀取、寫入、關閉等操作是,就會調用對應關聯的事件處理器來處理。

文件事件處理器結構

讓人秒懂的redis的事件處理機制(圖解Redis-事件實現機制)2

文件處理器結構

Redis的事件框架由:I/O多路複用程序、aeMain主線程、事件分派、事件隊列等幾個核心元素組成,aeMain主線程一直輪詢事件隊列中就緒的I/O事件,然後通過事件綁定的處理器來處理業務。

文件事件執行過程

讓人秒懂的redis的事件處理機制(圖解Redis-事件實現機制)3

事件處理的過程

  • 服務器接收到客戶端發送的建立連接請求
  • 多路複用程序産生AE_READABLE事件發送至事件隊列
  • 連接應答處理器接收到事件,開始創建socket并将AE_READABLE事件與命令請求處理器關聯,連接建立成功,等待接收客戶端後續操作
  • 服務器接收到客戶端發送的命令請求
  • 多路複用程序産生AE_READABLE事件,發送至事件隊列
  • 命令請求處理器接收到事件,并從socket中讀取出命令信息并開始執行命令,同時将socket的AE_WRITABLE事件與命令回複處理器關聯
  • 多路複用程序産生AE_WRITABLE事件,并發送至事件隊列
  • 命令回複處理器接收到事件,開始向socket輸出本地操作的執行結果給客戶端,将socket的AE_WRITABLE事件與命令回複處理器解除關聯
時間事件

Redis的時間事件分為兩種,定時事件:讓一個函數在指定的時間之後執行一次;周期性任務:讓一個函數每間隔指定時間執行一次;時間事件是基于serverCron函數實現,該函數主要對服務器自身資源和狀态檢查和調整,确保服務器的長期、穩定運行,具體工作詳見本文中事件的調度執行。

事件的調度執行

讓人秒懂的redis的事件處理機制(圖解Redis-事件實現機制)4

事件的調度執行過程

  • apiPoll函數阻塞并等待文件事件産生,該方法避免了服務器對時間事件進行頻繁的輪詢,該函數有阻塞過期,時間到達立即返回
  • 文件事件的到達是随機的,随着文件事件的執行,時間事件的到達時間開始接近,當時間事件執行時間到達後服務器開始執行時間事件
  • 文件事件與時間事件都是同步、有序、原子的執行的,整個過程盡量減少阻塞時間,耗時相對久的函數都會設置run_with_period(最大運行時長),當執行耗時比較久的函數時,Redis會采用子線程或子進程的方式來異步處理,比如持久化操作。
  • Redis 6.0對processEvents流程進行了優化,引入多線程模型提升eventLoop 處理效率,詳見:Redis多線程處理模型

以上就是Redis事件實現機制的介紹,如果各位還想了解更多,歡迎轉發評論 關注,Redis圖解系列專欄持續更新中。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
弱者如何讓自己立于不敗之地(懂得弱者道之用)
弱者如何讓自己立于不敗之地(懂得弱者道之用)
  老子在《道德經》第40章中說:“弱者道之用。”是什麼意思呢?   “弱”,柔弱;“用”,作用。這句話的意思是,“道”的作用是柔弱的。   一說到柔軟,人們自然會想到軟弱無力,像林黛玉一樣,弱不禁風,弱風扶柳一般嬌弱,經不起風吹雨打。   老子所說的“道”,其中的一個内涵就是指規律,規律是客觀存在的,不以人的意志為轉移,這就決定了人隻能服從規律,按客觀規律...
2026-01-27
核苷酸填充面部的危害(人們說我像辛普森)
核苷酸填充面部的危害(人們說我像辛普森)
  據英國《太陽報》報道,一名英國女子在嘴唇填充物溶解後出現了嚴重過敏反應,被緊急送往醫院。      報道截圖   這名女性化名露比,她在短視頻平台TikTok上分享了這段痛苦的經曆,該視頻在一天内被觀看了近50萬次。   據露比說,過敏反應非常糟糕,導緻她上唇腫大,臉部腫脹。盡管在一些照片中露比面帶微笑,但她表示,她再也不想做嘴唇整形了。   報道稱,有...
2026-01-27
錦心似玉譚松韻是自己配音嗎(錦心似玉譚松韻飾演的十一娘怼人功夫實在了得啊)
錦心似玉譚松韻是自己配音嗎(錦心似玉譚松韻飾演的十一娘怼人功夫實在了得啊)
  昨晚由鐘漢良、譚松韻主演的《錦心似玉》開播,在播出的劇集當中,十一娘可稱得上是智慧擔當了,那怼人的功夫實在了得啊!   十一娘ko二娘   二娘為掙得嫁入徐府續弦正室,設計陷害十一娘與王世子的親事,被十一娘拆穿,并狠狠地回敬過去。         十一娘ko喬姨娘      十一娘ko自家相公      三殺!ok!這個怼天怼地地徐府主母可越來越有主母地...
2026-01-27
道德經反者道之動弱者道之用原文(道德經第四十章反者道之動)
道德經反者道之動弱者道之用原文(道德經第四十章反者道之動)
  詳細解讀《道德經》40      反動弱用   〈原文〉   反者道之動,弱者道之用。   天下萬物生于有,有生于無。   〈注釋〉   反:翻轉,反向,相反。   弱:柔弱。   〈譯文〉   向自己的反面運動,是道的運動特征;   依靠柔弱發揮作用,是道的應用特征。   天地萬物總稱為有,有生于無。   〈解讀〉   本章主要是闡述了道的運動特征和道...
2026-01-27
地下城堡2 雲之國攻略(地下城堡2史上最豪華福利活動)
地下城堡2 雲之國攻略(地下城堡2史上最豪華福利活動)
  經典的地牢探險與模拟經營手遊《地下城堡2》将于1月17日推出年度重制版。從遊戲畫面到人物角色都将全面換新,并且會有新的玩法内容更新。      圖1:年度重制版1月17日上線   随着本次更新,遊戲内也将開展各式各樣的福利活動,這在之前的版本中都是沒有的。單看禮包就囊括了登陸、充值等多種類型的禮包,讓人目不暇接。   回家的誘惑一:全服送SS英雄   本...
2026-01-27
Copyright 2023-2026 - www.tftnews.com All Rights Reserved