程序員硬核測評全方位測評 GaussDB(for Redis) 和開源 Redis

      網友投稿 752 2022-05-29

      正值企業數字化轉型全面提速之際,業務需求急速增加,伴隨而來的是數據量和并發訪問量呈指數級增長,傳統關系型數據庫在處理海量大數據時顯得力不從心。由于局部性原理的限制,在使用傳統數據庫來處理大數據流,在初始建表時表中大量的數據項被置空,這對于傳統數據庫來說是災難性的。在關系型數據庫中,建表時須定義表結構,字段動態增減對于性能的影響巨大,同時帶有大量空值稀疏矩陣的存儲會導致存儲成本的急劇增加,這給了NoSQL 型數據庫以極**展空間,而Redis作為 NoSQL 的翹楚,備受業界追捧。

      開源版本的Redis 5.0 提供了包括 String、List、Set、ZSet、Hash、Bit Array、HyperLogLog、Geo、Streams 九種數據類型,以及建立在這些數據類型上的相關操作,給開發人員更多的選擇空間來表達數據和數據間的相互關系。但開源版Redis從本質上講并不是一款數據庫,主要有以下幾方面的弱點:

      1.使用場景有限,只能達到弱一致性的水平,一般只能在緩存層使用;

      2.使用成本高,由于開源版Redis使用內存作為存儲主體,內存居高不下的價格使搭建Redis集群的成本極高;

      3.運行不穩定,經常使用開源版Redis的讀者肯定了解,在進行如大key替換時、擴容、縮容等操作時,經常遇到阻塞、抖動等問題。

      于是本文我們選擇了在業界有著良好口碑GaussDB(for Redis)進行了對比評測,以向各位讀者推薦一款真正質優價廉的Redis。下面我們具體展開聊聊:

      GaussDB(for Redis):穩定可靠

      在使用緩存方案時,用戶最害怕見到的場景就是Redis由于各種原因性能下降,使業務流量的壓力直接向核心數據庫轉移,最終造成整個系統的雪崩。可以說運行穩定性是用戶在對于緩存數據庫選型時需要考慮的首要問題,因此我們選擇了切換、重啟與備份三個在日常工作中經常會遇到的場景進行開源版本Redis與GaussDB(for Redis)進行整體使用感受層面的對比評測。

      1.災備切換場景:首先通過在控制臺強行將主節點關機,模擬開源Redis主節點故障與GaussDB(for Redis)單個節點故障,其中特別說明:由于GaussDB(for Redis)采用多個節點同時工作的負載均衡方案,因此沒有開源Redis中的主節點概念,因此災備切換時任選某一節點宕機,即可模擬災備切換的場景。具體如下:

      可以看到GaussDB(for Redis)在切換過程中服務會瞬間遷移至備節點,而且切換過程中性能下降也不明顯,整體只需要1s就可以恢復正常。而對比開源版Redis在切換時則會出現服務完全中斷的情況,平均需要5s才能恢復。可以說GaussDB(for Redis)的表現讓我完全不會擔心在主節點發生異常時,使整個交易鏈路全部崩潰的情況,但是開源版Redis,在遇到切換時就會比較提心吊膽了。

      2.?節點故障恢復場景:節點異常重啟是Redis使用中所經常遇到的問題,我們知道開源版Redis服務重啟時需要加載元數據也就是RDB,Key值越多RDB也就越大,重啟速度就越慢,16G規格的開源版Redis服務重啟速度約需要10秒左右,而作為對比GaussDB(for Redis)重啟時沒有重新加載元數據的步驟,因此重啟速度很快,幾乎可以在1秒內完成重啟操作,而且重啟速度不受數據量影響。

      3.?備份場景:對于開源版Redis來說系統備份會觸發fork操作,fork操作是標準的POSIX操作系統接口,調用時會產生內存分配、拷貝等等一系列動作,這會使時延大幅度增長,造成開源版Redis在備份等日常運維操作時出現明顯的抖動現象,甚至極端情況下還會使內存使用率大幅飆升,觸發操作系統OOM保護使Redis進程異常中止,因此開源版的Redis只能在業務低谷期進行備份操作,對于全天候24小時都存在交易高峰的系統就不適用。不過GaussDB(for Redis)從系統底層解決了備份時的fork問題,備份時根本不需要fork操作,數據隨時可備,高峰期也不干擾。

      從總體的使用感受來看,GaussDB(for Redis)在穩定性方面幾乎碾壓開源版本Redis的,堪稱是用戶系統中的定海神針,下面我們再就具體擴容、性能、價格等方面的情況進行詳細評測。

      GaussDB (for Redis):秒級擴容

      從事開源Redis運維工作的讀者,一般都會有掉進過擴容的坑,由于開源 Redis使用內存作為數據的存儲,各節點間使用 Raft 協議進行數據同步,這使開源 Redis在擴容時操作較復雜,尤其在對服務器進行內存擴容時,一般都需要對于所在ECS實例進行重啟,這一系列的操作必然伴隨著主節點的切換與重啟,使服務暫時中斷。

      1.擴容過程中的服務性能對比:開源Redis是弱一致的緩存數據庫,數據即使沒有落盤持久化也可能向調用方法返回寫入成功,因此一旦發生切換,那么難免出現臟讀現象,因此擴容可以說是開源版Redis日常運維過程中最令使用者頭疼的問題。

      針對擴容場景我們同樣對于GaussDB(for Redis)與開源 Redis也進行了相應評測:

      程序員硬核測評:全方位測評 GaussDB(for Redis) 和開源 Redis

      2.擴容操作便利性對比:從操作層面上講GaussDB(for Redis)在擴容時比開源 Redis 簡單得多,只需要在華為云的操作臺上進行簡單操作即可,

      在筆者近百次不斷擴容操作當中,GaussDB(for Redis)從未出現過服務中斷及數據丟失的情況,擴容操作秒級完成,外部零感知,對比開源版本,操作復雜需要不斷地重啟、切換不說,在擴容過程中平均會有25秒左右的服務中斷。

      不僅擴容時不再需要提心吊膽,GaussDB(for Redis)的配套監控系統比開源 Redis 完善,不僅可對請求時延等關鍵性能指標可視化監控,還可實現故障節點自動摘除、平滑移動、自動告警、自動恢復,給使用者提供了絕佳的運維體驗。

      GaussDB(for Redis):強悍性能

      與內存相比,磁盤無論在穩定性還是可維護性上都有非常強大的優勢,從本質上講GaussDB(for Redis)實際上都得益于其磁盤作為數據的存儲設備,內存的優勢是速度快,筆者在評測之前認為GaussDB(for Redis)可能會比開源版本有差距,但實際的測試結果卻證明在相同的規格下GaussDB(for Redis)與開源版本的差距微乎其微。

      1.一般場景性能對比:在我們測試的16G規格下,GaussDB(for Redis)甚至還略高于開源Redis,具體如下:

      2.大key替換場景性能對比:而且GaussDB(for Redis)也完全解決了開源 Redis在進行 key 值替換時的卡頓問題。在模擬大key替換的場景下,具體如下:

      在對大Key進行替換、讀寫操作時,GaussDB(for Redis)性能幾乎沒有受到任何影響,這與開源版本動輒下降20%的情況相比,實在令人驚喜。

      3.GaussDB (for Redis)的性能密碼

      剖析這背后的原因,在于GaussDB(for Redis)通過存儲層 Shared Everything 解決了開源 Redis 在批量 key 替換時產生的卡頓問題,GaussDB(for Redis)的存算分離架構不但屏蔽了各個不同獨立數據庫之間的底層細節,讓存儲的歸存儲,計算的歸計算,將各種能力封裝到模塊中,用戶任意挑選適合組件,根據自身的業務需求、以極小的成本來定制化數據庫服務。在這個過程中還保證了完整的用戶體驗一致性。

      GaussDB(for Redis)利用 hash 策略對數據進行均衡,不存在 Full GC 造成的 STW 問題,這些技術方案的運用讓GaussDB(for Redis)完美解決了開源版本經常出現的卡頓問題,真正做到了“絲絲順滑,完全不卡”。GaussDB(for Redis)通過冷熱分離技術動態發現熱點數據,并將熱點數據有序調入內存,在客戶看來,幾乎感受不到GaussDB(for Redis)與開源Redis時的性能差距。

      GaussDB(for Redis)有開源Redis不具備的優勢,就是不受內存容量限制,支持PB級的緩存集群,規模越大GaussDB(for Redis)的性能還越好,從華為云的官方資料上看,GaussDB(for Redis)性能可以輕松達到百萬級的QPS。

      得益于GaussDB(for Redis)負載均衡的架構方案,只要集群中有一個節點還是可用的,整個集群就能正常對外服務,正常情況下每個節點都可支持寫入,這種架構在正常情況下可以保證對外的高性能,在異常時又支持N-1級別的容錯特性,在性能及容災方面的對比GaussDB(for Redis)又是領先于開源版Redis。

      GaussDB(for Redis):極致性價比

      為了對比這兩者的性價比,我們采購了某廠商的 2C/16G、4C/64G兩種規格的ECS云服務器各3臺,搭建開源Redis版本的集群,并與華為云上用同規格的?GaussDB(for Redis)進行價格對比,由于具體性能指標的對比前文已經列出,這里不再加贅述。

      我們可以看到單位數據量的GaussDB(for Redis)在性價比層面可以比開源Redis平均提高近1倍。

      從評測結果來看,GaussDB(for Redis)是一款超越開源版本的優秀產品,在各方面的指標幾乎全面超越了開源版本,總結上述評測結果如下:

      由于GaussDB(for Redis)基于華為高性能分布式共享存儲池,完美避開開源Redis 的主從堆積、主從不一致、fork 抖動、內存利用率只有 50%、大 key 阻塞、gossip 集群管理等諸多問題,購買的容量全部可用,并且單位數據的使用成本只有開源版本的一半。開發者們,現在不試試GaussDB(for Redis)更待何時?

      華為云開年采購季?盛大開幕!玩法多多,特惠多多

      服務器低至0.3折,數據庫只要¥18/年;集云福卡領華為平板電腦、千元購物卡;

      抽獎專區100%中獎,最高得華為典藏版手表;

      更有13大場景專場,滿足更多上云需求!

      #開年就選華為云_天天都是好日子

      Redis 云數據庫 GaussDB(for Redis) 開發者 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:公有云基本概念系列——鏡像
      下一篇:如何讓爬蟲一天抓取100萬張網頁
      相關文章
      亚洲AV无码成人精品区大在线| 日本中文一区二区三区亚洲| 国产亚洲精品无码专区| 亚洲精品无码高潮喷水A片软| 亚洲国语在线视频手机在线| 亚洲精品国产啊女成拍色拍| 婷婷亚洲综合五月天小说| 亚洲人成图片小说网站| 亚洲一区二区三区影院| 国产av无码专区亚洲av果冻传媒| 国产成人高清亚洲| JLZZJLZZ亚洲乱熟无码| 亚洲色婷婷综合开心网| 美腿丝袜亚洲综合| 亚洲一区二区三区无码中文字幕| 亚洲中文字幕无码不卡电影| 国产亚洲精品a在线观看| 国产午夜亚洲精品理论片不卡 | 亚洲成a人片在线观看精品| 亚洲av无码片区一区二区三区| 亚洲一区二区三区免费在线观看| 亚洲av无码片区一区二区三区| jiz zz在亚洲| 精品亚洲国产成人av| 亚洲AV无码专区日韩| 亚洲欧洲精品成人久久奇米网 | 亚洲永久永久永久永久永久精品| 久久久久亚洲AV无码网站| 亚洲综合综合在线| 亚洲av极品无码专区在线观看| 亚洲日本天堂在线| 国产精品成人亚洲| 伊人久久精品亚洲午夜| 国产AV无码专区亚洲精品| 亚洲人成网站影音先锋播放| 亚洲国产超清无码专区| 亚洲日韩国产精品无码av| 亚洲综合偷自成人网第页色| 亚洲精品无码mⅴ在线观看| 一本色道久久88亚洲综合| 亚洲线精品一区二区三区|