為什么redis是單線程

那么為什么redis是單線程

為什么redis是單線程  
我們首先要明白,redis很快!官方FAQ表示,因為Redis是基于內存的操作,CPU不是Redis的瓶頸,Redis的瓶頸最有可能是機器內存的大小或者網絡帶寬。既然單線程容易實現,而且CPU不會成為瓶頸,那就順理成章地采用單線程的方案了(畢竟采用多線程會有很多麻煩!)。(推薦學習:Redis視頻教程

看到這里,你可能會氣哭!本以為會有什么重大的技術要點才使得Redis使用單線程就可以這么快,沒想到就是一句官方看似糊弄我們的回答!但是,我們已經可以很清楚的解釋了為什么Redis這么快,并且正是由于在單線程模式的情況下已經很快了,就沒有必要在使用多線程了!

但是,我們使用單線程的方式是無法發揮多核CPU 性能,不過我們可以通過在單機開多個Redis 實例來完善!

警告1:這里我們一直在強調的單線程,只是在處理我們的網絡請求的時候只有一個線程來處理,一個正式的Redis Server運行的時候肯定是不止一個線程的,這里需要大家明確的注意一下!例如Redis進行持久化的時候會以子進程或者子線程的方式執行(具體是子線程還是子進程待讀者深入研究);
  
ps命令的“-T”參數表示顯示線程(Show threads, possibly with SPID column.)“SID”欄表示線程ID,而“CMD”欄則顯示了線程名稱。

警告2:官方FAQ中的最后一段,表述了從Redis 4.0版本開始會支持多線程的方式,但是,只是在某一些操作上進行多線程的操作!所以該篇文章在以后的版本中是否還是單線程的方式需要讀者考證!

更多Redis相關技術文章,請訪問Redis視頻教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享