1. 程式人生 > >Redis到底是多執行緒還是單執行緒?

Redis到底是多執行緒還是單執行緒?

windows工作管理員檢視的是程序吧。

從網上摘錄了一部分:

總體來說快速的原因如下:

1)絕大部分請求是純粹的記憶體操作(非常快速)

2)採用單執行緒,避免了不必要的上下文切換和競爭條件

3)非阻塞IO

內部實現採用epoll,採用了epoll+自己實現的簡單的事件框架。epoll中的讀、寫、關閉、連線都轉化成了事件,然後利用epoll的多路複用特性,絕不在io上浪費一點時間

這3個條件不是相互獨立的,特別是第一條,如果請求都是耗時的,採用單執行緒吞吐量及效能可想而知了。應該說redis為特殊的場景選擇了合適的技術方案。

關於執行緒安全問題

redis實際上是採用了執行緒封閉的觀念,把任務封閉在一個執行緒,自然避免了執行緒安全問題,不過對於需要依賴多個redis操作的複合操作來說,依然需要鎖,而且有可能是分散式鎖。

如果想要深入學習redis的話,提供一套視訊教程可以看一下:redis入門到精通視訊教程-碼源教程