您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Redis6.0引入多線程的好處有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1、解決單線程的局限性
我們都知道Redis之前一直不引入多線程,是因為單線程的使用可維護性高,不同于多線程系統復雜度的增加和各種問題容易出現的性能損耗。但隨著越來越復雜的業務場景,有些公司動不動就上億的交易量,因此需要更大的QPS。而舊版本的Redis服務器可以處理80,000到100,000 QPS,這也是Redis處理的極限了。常見的解決方案是在分布式架構中對數據進行分區并采用多個服務器,但該方案有非常大的缺點,例如要管理的Redis服務器太多,維護代價大;某些適用于單個Redis服務器的命令不適用于數據分區;數據分區無法解決熱點讀/寫問題;數據偏斜,重新分配和放大/縮小變得更加復雜等等。而且,Redis的多線程部分只是用來處理網絡數據的讀寫和協議解析,執行命令仍然是單線程順序執行。所以我們不需要去考慮控制 key、lua、事務,LPUSH/LPOP 等等的并發及線程安全問題。
2、突破Redis自身瓶頸
(1)分攤 Redis 同步 IO 讀寫負荷
因為讀寫網絡的read/write系統調用占用了Redis執行期間大部分CPU時間,瓶頸主要在于網絡的 IO 消耗, 優化主要有兩個方向:提高網絡 IO 性能,典型的實現比如使用 DPDK 來替代內核網絡棧的方式;使用多線程充分利用多核,典型的實現比如 Memcached。因此,Redis6.0引入多線程一下子就分攤了Redis同步IO讀寫負荷。
(2)充分利用服務器CPU資源
議棧優化的這種方式跟Redis關系不大,支持多線程是一種最有效最便捷的操作方式。所以總結起來,Redis支持多線程主要就是因為可以充分利用服務器 CPU 資源,目前主線程只能利用一個核。
關于Redis6.0引入多線程的好處有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。