服務器問題

      redis中的網絡IO有了解過嗎,它是單線程的還是多線程的,為什么要用單線程?

      2020-05-15
      0
      redis 采用網絡IO多路復用技術來保證在多連接的時候,系統的高吞吐量。

      多路-指的是多個socket連接,復用-指的是復用一個線程。多路復用主要有三種技術:select,poll,epoll。epoll是最新的也是目前最好的多路復用技術。

      這里“多路”指的是多個網絡連接,“復用”指的是復用同一個線程。采用多路I/O

      復用技術可以讓單個線程高效的處理多個連接請求(盡量減少網絡IO的時間消耗),且Redis在內存中操作數據的速度非常快(內存內的操作不會成為這里的性能瓶頸),主要以上兩點造就了Redis具有很高的吞吐量。


      因為Redis是基于內存的操作,CPU不是Redis的瓶頸,Redis的瓶頸最有可能是機器內存的大小或者網絡帶寬。既然單線程容易實現,而且CPU不會成為瓶頸,所以采用單線程的方案。
      部分文章來源與網絡,若有侵權請聯系站長刪除!

      推薦產品