Redis 有多快?官方給出的答案是讀寫速度10萬/秒,如果說這是在單線程情況下跑出來的成績,你會不會驚訝?為什麼單線程的Redis 速度這麼快?原因有以下幾點:
純內存操作:Redis 是完全基於內存的,所以讀寫效率非常的高,當然Redis 有持久化操作,在持久化操作是都是fork 子程序和利用Linux 系統的頁快取技術來完成,不會影響Redis 的效能。
單執行緒操作:單執行緒並不是壞事,單執行緒可以避免了頻繁的上下文切換,頻繁的上下文切換也會影響效能的。
合理且有效率的資料結構
採用了非阻塞I/O 多重化機制:多路I/O復用模型是利用select、poll、epoll 可以同時監察多個流的I/O 事件的能力,在空閒的時候,會把當前線程阻塞掉,當有一個或多個流有I/O 事件時,就從阻塞態中喚醒,於是程式就會輪詢一遍所有的流(epoll 是只輪詢那些真正發出了事件的流),並且只依次順序的處理就緒的流,這種做法就避免了大量的無用操作。
以上是為什麼說單線程的Redis比較快的詳細內容。更多資訊請關注PHP中文網其他相關文章!