redis單線程是什么意思

redis單線程是什么意思

官方FAQ表示,因為redis是基于內(nèi)存的操作,CPU不是Redis的瓶頸,Redis的瓶頸最有可能是機器內(nèi)存的大小或者網(wǎng)絡(luò)帶寬。既然單線程容易實現(xiàn),而且CPU不會成為瓶頸,那就順理成章地采用單線程的方案了 ? (推薦學(xué)習(xí):Redis視頻教程

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

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

警告1:這里我們一直在強調(diào)的單線程,只是在處理我們的網(wǎng)絡(luò)請求的時候只有一個線程來處理,一個正式的Redis Server運行的時候肯定是不止一個線程的,這里需要大家明確的注意一下!例如Redis進(jìn)行持久化的時候會以子進(jìn)程或者子線程的方式執(zhí)行(具體是子線程還是子進(jìn)程待讀者深入研究);例如我在測試服武器上查看Redis進(jìn)程,然后找到該進(jìn)程下的線程:

redis單線程是什么意思

ps命令的“-T”參數(shù)表示顯示線程(Show threads, possibly with SPID column.)“SID”欄表示線程ID,而“CMD”欄則顯示了線程名稱。

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊11 分享