最近在看redis源碼,主體流程看完了。
在網上看到了reactor模式,看了一下,其實咱們常用這種模式。html
反應器設計模式(Reactor pattern)是一種爲處理併發服務請求,並將請求提交到一個或者多個服務處理程序的事件設計模式。
當客戶端請求抵達後,服務處理程序使用多路分配策略,由一個非阻塞的線程來接收全部的請求,而後派發這些請求至相關的工做線程進行處理。
簡單說,就是如何處理多個客戶端的併發請求
的解決模式。react
處理大量客戶端請求,不能去挨個輪訓,這個要使用epoll。
epoll因爲select, poll。這個網上有不少資料。redis
redis中的特殊處理
)到達服務端的請求,redis代碼中,使用單線程處理。
redis使用就是單線程既要處理鏈接、也要處理請求,由於redis全內存,避免了線程間加鎖、切換等。設計模式
更通常的架構處理
)一般架構中都是採用多線程來處理到達服務器的請求。
將請求放到無鎖隊列
中,處理線程循環來請求任務便可。
由於服務器代碼中,可能會訪問第三方存儲等長耗時處理。用多線程加速。安全