當前位置:名人名言大全網 - 心情說說 - Redis的IO復用——對單線程的理解(Redis6.0之後的多線程)

Redis的IO復用——對單線程的理解(Redis6.0之後的多線程)

反應器設計模式是壹種事件驅動的設計模式。調度程序使用解復用器來監聽多個客戶端請求。當請求事件發生時,調度器將壹個或多個客戶端請求分配給不同的事件處理程序,以提高事件處理的效率。

下圖顯示了反應器設計模式類圖:

基於反應堆設計模式的IO復用

IO復用技術的架構圖如下

註意:

多線程可能涉及鎖定和切換線程的消耗。

耗時的命令會導致性能下降,CPU多核的性能無法發揮。

Redis多線程只是用來處理網絡數據的讀寫和協議分析,命令的執行還是單線程。這種設計上的改變是為了避免引入多線程而使Redis變得復雜。而且過去使用單線程主要是考慮到CPU不是Redis的瓶頸,不需要多線程並發執行,所以多線程模式帶來的性能提升並不能抵消它帶來的開發和維護成本。

現在多線程模型的引入解決了網絡IO操作的性能瓶頸。對於Redis基於內存的操作,還是很快的,有時候IO操作阻塞會影響後續操作的效率。而是進行多線程並發IO操作,然後主線程進行內存操作,可以更好的緩解IO操作帶來的性能瓶頸。

該架構如下所示: