仔細說一說 I/O 多路複用機制,打一個比方:小曲在 S 城開了一家快遞店,負責同城快送服務。小曲因為資金限制,雇傭了一批快遞員,然後小曲發現資金不夠了,隻夠買一輛車送快遞。
經營方式一
客戶每送來一份快遞,小曲就讓一個快遞員盯着,然後快遞員開車去送快遞。慢慢的小曲就發現了這種經營方式存在下述問題:
綜合上述缺點,小曲痛定思痛,提出了經營方式二。
經營方式二
小曲隻雇傭一個快遞員。當客戶送來快遞,小曲按送達地點标注好,依次放在一個地方。最後,讓快遞員依次去取快遞,一次拿一個,再開着車去送快遞,送好了就回來拿下一個快遞。上述兩種經營方式對比,很明顯第二種效率更高。
在上述比喻中:
于是有了如下結論:
下面類比到真實的 Redis 線程模型,如圖所示:
Redis-client 在操作的時候,會産生具有不同事件類型的 Socket。在服務端,有一段 I/O 多路複用程序,将其置入隊列之中。然後,文件事件分派器,依次去隊列中取,轉發到不同的事件處理器中。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!