Redis的執行緒模型

2021-10-23 01:24:15 字數 382 閱讀 6916

redis是單執行緒。

採用單執行緒理由是

1)redis 完全是基於記憶體的操作,cpu 不是 redis 的瓶頸,其瓶頸最有可能是機器記憶體的大小或者網路頻寬。

2)單執行緒容易實現

好處是採用單執行緒,避免了不必要的上下文切換和競爭條件,不存在多執行緒導致的 cpu 切換,不用去考慮各種鎖的問題,不存在加鎖釋放鎖操作,沒有死鎖問題導致的效能消耗。

也許是為了彌補無法發揮多核cpu優勢的缺陷,redis採用了io多路復用模型,即非同步阻塞模型。這種模型最大的特點,就是乙個執行緒可以同時處理多個io請求。

(參見拙作:io多路復用)

再加上資料結構簡單,對資料操作也簡單,所以redis的效能不輸給memcached,而功能、對事務、資料持久等的支援都優於後者。

Redis 執行緒模型

檔案事件處理器 file event handler redis 基於 reactor 模式開發了自己的網路事件處理器 這個處理器被稱為檔案事件處理器 file event handler 檔案事件處理器使用 i o 多路復用 multiplexing 程式來同時監聽多個套接字,並根據套接字目前執行...

Redis執行緒模型

redis基於reactor模式開發了自己的網路事件處理器。被稱為檔案事件處理器,由於這個處理器是單執行緒的所以決定了redis是單執行緒的。多個socket io多路復用程式 scocket佇列 檔案事件分配器 事件處理器 連線應答處理器,命令請求處理器,命令回覆處理器 多個 socket 可能會...

redis的單執行緒模型

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