通過閱讀文檔發現redis居然是單線程的,它是怎麼做到能夠支撐這麼高的並發的?用到了什麼特殊的算法結構或者非阻塞模型嗎?
认证高级PHP讲师
因為 Redis 的操作都非常快速——它的資料全部在記憶體裡,完全不需要存取磁碟。至於並發,Redis 使用多路 I/O 復用技術,本身的並發效率不成問題。
當然,單一 Redis 進程沒辦法使用多核心(任一時刻只能跑在一個 CPU 核心上),但是它本來就不是非常計算密集型的服務。如果單核心效能不夠用,可以多開幾個進程。
搜尋: Redis 單執行緒-多路復用io模型
因為 Redis 的操作都非常快速——它的資料全部在記憶體裡,完全不需要存取磁碟。至於並發,Redis 使用多路 I/O 復用技術,本身的並發效率不成問題。
當然,單一 Redis 進程沒辦法使用多核心(任一時刻只能跑在一個 CPU 核心上),但是它本來就不是非常計算密集型的服務。如果單核心效能不夠用,可以多開幾個進程。
搜尋: Redis 單執行緒-多路復用io模型