中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis是不是多線程的

發布時間:2020-11-13 14:31:27 來源:億速云 閱讀:170 作者:小新 欄目:關系型數據庫

小編給大家分享一下redis是不是多線程的,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

redis是單線程,單線程指的是網絡請求模塊使用了一個線程(所以不需考慮并發安全性),即一個線程處理所有網絡請求,其他模塊仍用了多個線程。

redis可以能夠快速執行的原因:

(1) 絕大部分請求是純粹的內存操作(非常快速)
(2) 采用單線程,避免了不必要的上下文切換和競爭條件
(3) 非阻塞IO-IO多路復用(IO多路復用是什么意思?)

IO多路復用中有三種方式:select,poll,epoll。需要注意的是,select,poll是線程不安全的,epoll是線程安全的

redis內部實現采用epoll,采用了epoll+自己實現的簡單的事件框架。epoll中的讀、寫、關閉、連接都轉化成了事件,然后利用epoll的多路復用特性,絕不在io上浪費一點時間 這3個條件不是相互獨立的,特別是第一條,如果請求都是耗時的,采用單線程吞吐量及性能可想而知了。應該說redis為特殊的場景選擇了合適的技術方案。

redis的內部實現:

內部實現采用epoll,采用了epoll+自己實現的簡單的事件框架。epoll中的讀、寫、關閉、連接都轉化成了事件,然后利用epoll的多路復用特性,絕不在io上浪費一點時間 這3個條件不是相互獨立的,特別是第一條,如果請求都是耗時的,采用單線程吞吐量及性能可想而知了。應該說redis為特殊的場景選擇了合適的技術方案。

Redis關于線程安全問題:

redis實際上是采用了線程封閉的觀念,把任務封閉在一個線程,自然避免了線程安全問題,不過對于需要依賴多個redis操作的復合操作來說,依然需要鎖,而且有可能是分布式鎖。

使用Redis有哪些好處?

(1) 速度快,因為數據存在內存中,類似于HashMap,HashMap的優勢就是查找和操作的時間復雜度都是O(1)

(2) 支持豐富數據類型,支持string,list,set,sorted set,hash

(3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行

(4) 豐富的特性:可用于緩存,消息,按key設置過期時間,過期后將會自動刪除

Redis常見性能問題和解決方案:

(1) Master最好不要做任何持久化工作,如RDB內存快照和AOF日志文件;(Master寫內存快照,save命令調度rdbSave函數,會阻塞主線程的工作,當快照比較大時對性能影響是非常大的,會間斷性暫停服務,所以Master最好不要寫內存快照;AOF文件過大會影響Master重啟的恢復速度)

(2) 如果數據比較重要,某個Slave開啟AOF備份數據,策略設置為每秒同步一次

(3) 為了主從復制的速度和連接的穩定性,Master和Slave最好在同一個局域網內

(4) 盡量避免在壓力很大的主庫上增加從庫

(5) 主從復制不要用圖狀結構,用單向鏈表結構更為穩定,即:Master <- Slave1 <- Slave2 <- Slave3...;這樣的結構方便解決單點故障問題,實現Slave對Master的替換。如果Master掛了,可以立刻啟用Slave1做Master,其他不變。

看完了這篇文章,相信你對redis是不是多線程的有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

噶尔县| 乌什县| 九寨沟县| 霍州市| 万安县| 安远县| 凌云县| 如皋市| 武强县| 邻水| 上饶县| 文安县| 乐山市| 长春市| 广宁县| 左云县| 汨罗市| 甘德县| 萝北县| 徐州市| 滨海县| 缙云县| 信宜市| 蕲春县| 民县| 黄冈市| 东至县| 鹰潭市| 镶黄旗| 梨树县| 定结县| 恩施市| 徐水县| 措美县| 会昌县| 康保县| 扶沟县| 固原市| 灌南县| 永胜县| 德化县|