對Redis單執行緒的一些看法

2021-10-07 18:50:15 字數 395 閱讀 8769

1.先說說redis單執行緒的優點:

單執行緒的模型除了減少一些執行緒上下文切換之外並無其他優點,事實性其實單執行緒的redis指的只是說處理cmd的流程是單執行緒的,也就是只有epoll接收到cmd之後,繼續單執行緒序列處理這些命令,其實處理主從同步之類的是fork另外程序的方式去進行的

2.單執行緒redis最大的缺點:

a.當某個cmd比如key等命令比較耗時時,會導致整個redis卡頓,這按正常理解完全不能接受,但是確實真實地存在於當前的redis實現中

所以redis的多執行緒實現實在是百利而無一害,類似netty之類的,也是多個epoll+多執行緒的方式來實現的,這樣既可以充分利用多核cpu,而且如果執行緒數量在合理範圍內時,執行緒的上下文切換開銷極小,和單執行緒的實現方式的qps相比相差不大,甚至會比單執行緒的qps要高.

redis的單執行緒

1 完全基於記憶體,絕大部分請求是純粹的記憶體操作,非常快速。資料存在記憶體中,類似於hashmap,hashmap的優勢就是查詢和操作的時間複雜度都是o 1 2 資料結構簡單,對資料操作也簡單,redis中的資料結構是專門進行設計的 3 採用單執行緒,避免了不必要的上下文切換和競爭條件,也不存在多...

Redis的單執行緒架構

redis使用了單執行緒架構 和 i o多路復用模型來實現高效能的記憶體資料庫服務。這裡通過 多個客戶端 命令呼叫的例子說明 redis單執行緒命令處理機制,接著分析 redis單執行緒模型為什麼效能如此之高,最終給出為什麼 理解單執行緒模型是使用和運維redis的關鍵。開啟三個redis cli客...

redis的單執行緒模型

redis使用文字事件處理器file event handler 整個檔案事件處理器是單執行緒的,所以才叫做單執行緒模型,他採用io多路復用機制同時監聽多個socket,根據socket上的事件來選擇對應的事件處理器進行處理 檔案事件處理器的結構包含4個部分 多個socket可能會併發產生不同的操作...