Redis採用單執行緒 多路IO復用技術

2021-10-04 18:02:35 字數 534 閱讀 9708

多路復用指使用乙個執行緒來檢查多個檔案描述符(socket)的就緒狀態,比如呼叫select和poll函式,傳入多個檔案描述符,如果有乙個檔案描述符就位,則返回,否則阻塞直到超時。得到就緒狀態後進行真正的操作可以在同乙個執行緒裡執行,也可以啟用執行緒執行(比如使用執行緒池)、

就是說多路io復用起到乙個監視的效果,就緒後,redis直接執行,不需要等待

序列採用多執行緒+鎖(memcached)與單執行緒+多路io復用的比較

序列:阻塞io,一件事一件事的做,在做當前事時,不能做其他事,有等待

採用多執行緒+鎖:非阻塞io,一直重複做當前的事,沒有等待

單執行緒+多路io復用:做某件事情需要一定的時間,可以監視這件事,我們可以做其他的事。多路io復用有select,poll,epoll這些模式。select監測數量能力有限。poll監測數量沒有限制,但是需要乙個乙個核查。配epoll監測數量沒有限制,也不需要乙個乙個核查,直接看是否有乙個正確的標識。

Redis單執行緒

redis 的單執行緒主要是指 redis 的網路 io 和鍵值對讀寫是由乙個執行緒來完成的,這也是 redis 對外提供鍵值儲存服務的主要流程。當多個客戶端發起命令,這些命令併發執行時,在redis內部,會排隊逐個執行,也就是執行命令的那個操作是由乙個執行緒執行的。但 redis 的其他功能,比如...

Redis單執行緒理解

簡介 從接觸redis到現在,一直被它的單執行緒問題困擾,這對於乙個苛求原理的我來說是種折磨,今天吃飯途中看了幾篇部落格,茅塞頓開。個人理解 redis分客戶端和服務端,一次完整的redis請求事件有多個階段 客戶端到伺服器的網路連線 redis讀寫事件發生 redis服務端的資料處理 單執行緒 資...

redis單執行緒模型

redis基於reactor模式開發了自己的網路事件處理器,稱之為檔案事件處理器 file event hanlder 檔案事件處理器由socket io多路復用程式 檔案事件分派器 dispather 事件處理器 handler 四部分組成。io多路復用程式會同時監聽多個socket,當被監聽的s...