久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis單線程的reactor模型是怎樣的

161次閱讀
沒有評論

共計 1128 個字符,預計需要花費 3 分鐘才能閱讀完成。

這篇文章主要講解了“Redis 單線程的 reactor 模型是怎樣的”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Redis 單線程的 reactor 模型是怎樣的”吧!

redis 的高性能

純內存訪問,所有數據都在內存中,所有的運算都是內存級別的運算,內存響應時間的時間為納秒級別。因此 redis 進程的 cpu 基本不存在磁盤 I/O 等待時間、內存讀寫性能問題,CPU 不是 redis 的瓶頸(內存大小和網絡 I /O 才是 redis 的瓶頸,也就是客戶端和服務端之間的網絡傳輸延遲)。【相關推薦:Redis 視頻教程】

采用單線程模型,單線程實現簡單。避免了多線程頻繁上下文切換,以及同步機制如鎖帶來的開銷

簡單高效的基礎數據結構:動態字符串(SDS),鏈表,字典,跳躍鏈表,整數集合和壓縮列表。然后 redis 在這個基礎上去實現用戶能操作的對象:字符串,列表,哈希,集合,有序集合等對象

reactor 模式的網絡事件處理器。它使用了 I/O 多路復用去同時監控多個套接字,這是一種高效的 I / O 模型。reactor 相關知識可以看下這篇文章 框架篇:見識一下 linux 高性能網絡 IO+Reactor 模型

為什么使用單線程

采用單線程,避免了不必要的上下文切換和競爭條件;不存在多線程導致的切換而消耗 CPU

不用考慮各種鎖的問題,不存在加鎖和釋放鎖的的操作,沒有因為可能出現的死鎖而導致的性能消耗

簡單可維護,多線程模式會使得程序的編寫更加復雜和麻煩,單線程實現易實現

redis 是單線程系統?

我們常說 redis 單線程是指其網絡事件處理模型 reactor 是單線程

如果一次 client 請求會刪除幾百萬 keys 值,那么這條命令可能會導致阻塞。在 redis 4.0 選擇引入多線程來實現這一類非阻塞的命令

在 redis6.0 版本正式引入多線程去處理客戶端的 I/O 讀寫響應,而 redis 命令事件的處理還是在主線程單線處理

假如是針對整個 redis 系統,則一直有其他線程去處理異步任務,如 AOF、RDB 的同步

redis I/ O 模型

redis 處理快,不單單因為它是個單線程純內存系統,還有它采用了 Reactor 模型,使用 I/O 多路復用來實現對外部請求的處理,減少網絡連接、讀寫等待時間。使其在網絡 I/O 操作中能并發處理大量的客戶端請求,實現高吞吐率,高并發

redis 的多線程版本 I / O 模型 6.0

感謝各位的閱讀,以上就是“Redis 單線程的 reactor 模型是怎樣的”的內容了,經過本文的學習后,相信大家對 Redis 單線程的 reactor 模型是怎樣的這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-17發表,共計1128字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 涡阳县| 嵊泗县| 墨脱县| 秦安县| 广丰县| 黄大仙区| 靖西县| 瑞丽市| 马尔康县| 巴马| 万荣县| 太和县| 西盟| 璧山县| 巴林右旗| 株洲县| 隆化县| 张家口市| 盐池县| 霍州市| 扎囊县| 南涧| 通榆县| 惠州市| 达孜县| 雷山县| 奎屯市| 宁陕县| 台东县| 客服| 阿图什市| 闻喜县| 和林格尔县| 呼图壁县| 朔州市| 彰化市| 嘉义市| 翁源县| 湘潭市| 财经| 贺州市|