DBA:介裡有你沒有用過的“CHUAN”新社群版本Redis6.0
摘要:華為雲DCS Redis 6.0社群版帶來了極致效能、功能全面、可靠性強、價效比高的雲服務,並且完全相容開源Redis,客戶端無需修改程式碼,開通後即可使用,使企業完全無需後顧之憂就能享受到業務響應速度數倍提升的黃金收益。
本文分享自華為雲社群《DCS 社群版 Redis6.0 技術大揭祕》,作者:叮叮噹噹的貓。
自從Redis進入6.0版本之後,新特性和功能改進每月都有新變化,升級速度簡直是開掛上天啦!並且,對於 6.0 版本,Redis 之父 Antirez 在 RC1 版本釋出時(2019-12-19)在他的部落格上連續用了幾個“EST”詞語來評價:
這個版本提供了諸多令人心動的新特性及功能改進,比如新網路協議 RESP3,新的叢集代理,ACL 等,其中關注度最高的應該是“多執行緒”了。
華為雲DCS也第一時間啟動了對Redis 6.0的支援工作,經過大量前期工作籌備,華為雲DCS 社群版 Redis 6.0已於2021年8月初發布,正在公測。同時,與開源Redis6.x相比,DCS 社群版Redis6卻是開源版本效能的1.5~3倍。
那它是如何做到的呢?下面來給大家展開聊聊。
DCS 社群版Redis6.0 產品效能
話不多說,先上圖:
效能對比測試
如圖,在400客戶端連線情況下,2執行緒時,DCS寫效能是開源的1.68倍,讀效能是開源的1.54倍,時延分別比開源快39%和35%;4執行緒時,DCS寫效能是開源的2.56倍,讀效能是開源的2.22倍;時延分別比開源快61%和55%。
效能提升剖析
看官們可以看到DCS 社群版Redis 6.0版本效能有了大幅提升,那它具體是怎麼做到的呢?聽小哥慢慢道來。
在 Redis 的方案中,I/O 執行緒任務僅僅是通過 Socket 讀取客戶端請求命令並解析,卻沒有真正去執行命令,所有客戶端命令最後還需要回到主執行緒去執行,因此對多核的利用率並不算高,而且每次主執行緒都必須在分配完任務之後忙輪詢等待所有 I/O 執行緒完成任務之後才能繼續執行其他邏輯。Redis之所以如此設計它的多執行緒網路模型,我認為主要的原因是為了保持相容性,又能利用多核提升 I/O 效能,應該是一個折中的選擇。
華為雲DCS Redis實現了真正的多執行緒優化提升,除了多執行緒網路併發,還優化了多執行緒事件處理機制,使我們的資源利用率和效能收益提升2~3倍。除此之外,垂直彈性伸縮也能更多層次等等。
與開源版本深入對比
下表是DCS 社群版Redis 6.0與開源版本的詳細對比:
綜上:華為雲DCS Redis 6.0社群版帶來了極致效能、功能全面、可靠性強、價效比高的雲服務,並且完全相容開源Redis,客戶端無需修改程式碼,開通後即可使用,使企業完全無需後顧之憂就能享受到業務響應速度數倍提升的黃金收益。
看官們,現在DCS Redis6.0社群版正在上線公測,期待大家踴躍報名,數量有限,先到先得。【小喇叭】
參考、致謝: