我們首先要明白,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數據庫使用入門教程欄目進行學習!