揭祕GaussDB(for Redis):全面對比Codis

華為雲開發者聯盟發表於2022-06-25
摘要:Codis叢集在國內Redis生態圈很流行,社群已停止維護。本文從架構和特性兩方面對比,帶你感受華為雲GaussDB(for Redis)的全新價值。

本文分享自華為雲社群《華為雲GaussDB(for Redis)揭祕第19期:GaussDB(for Redis)全面對比Codis》,作者: 高斯Redis官方部落格 。

一、Codis究竟有多火?

說Codis是國內最流行的自建Redis叢集方案,一點也不為過。客戶曾這樣說:

“Codis你不知道嗎?我們公司用了好多年了,好東西呀。”

的確,相比去中心化架構的開源Redis Cluster,Codis這種proxy代理叢集顯然更“好用”,甚至就連RedisLabs官方都推出了功能類似的redis-cluster-proxy來彌補傳統Cluster缺點。

然而其實從N年前開始,Codis社群就沒有人維護了,我們的客戶專案經理海鵬老師也經常要幫助客戶把自建Codis搬遷到雲上的GaussDB(for Redis)。

揭祕GaussDB(for Redis):全面對比Codis

Codis的確很優秀,不過我們可以負責任地說:

華為雲KV資料庫GaussDB(for Redis)更優秀!

二、GaussDB(for Redis) vs Codis:架構比拼

首先,我們從技術架構角度來看看兩款產品究竟哪裡不同。

揭祕GaussDB(for Redis):全面對比Codis

如圖,架構上的差異一目瞭然,我們可以自頂向下分析:

1、非標SDK vs 標準SDK

公有云使用者普遍討厭“搞特殊”,然而Codis偏要搞特殊。Codis綁架使用者必須使用非標Jodis SDK來解決代理層單點故障問題。但如果使用者偏要使用標準SDK(如大名鼎鼎的Jedis)呢?Codis表示:對不起,跟高可用說拜拜吧。

相反,GaussDB(for Redis)在使用上則很友好,業務側使用任何標準SDK都行,同時高可用、自動負載均衡能力也全都在。上雲搬遷時,GaussDB(for Redis)相容方面做得也很成熟,不論客戶原來程式碼用的是StandAlone,還是Cluster、Sentinel等模式,都可以0改造上雲,真正做到開箱即用,體驗感極佳。

2、無負載均衡 vs 專業的ELB

Codis的代理層雖然提供了橫向擴充套件能力,但並不好用:要麼犧牲高可用來使用標準SDK連線單點;要麼使用Jodis SDK,但代價是業務走向非標化。

而GaussDB(for Redis)提供ELB,方便使用者統一接入,在簡化客戶端複雜度的同時,還帶來了專業的負載均衡能力。有了這個統一接入IP,使用者相當於自己在使用一個超大容量的單機Redis,而無需操心底層細節。

3、存算耦合 vs 存算分離

可以認為,Codis是在多套Redis分片上做了一層封裝,架構模型是傳統的存算耦合。在大key、資料一致性、分片故障、擴縮容等典型場景中,都延續了開源Redis的長期“痛點”。

GaussDB(for Redis)採用存算分離架構,計算層聚焦資料業務,儲存層基於高效能分散式共享儲存池,確保資料三副本儲存強一致,超高可靠。同時大幅節省硬體成本,幫業務減負。

三、GaussDB(for Redis) vs Codis:特性比拼

從前文的架構維度對比可以看出,GaussDB(for Redis)上有ELB讓業務側“更好用”,下有儲存池讓資料“更可靠”,比自建Codis叢集優秀了太多。

下面再從特性維度聊聊,GaussDB(for Redis)還能給業務側帶來哪些價值。

1、相容性

GaussDB(for Redis)完全相容Redis協議,同時相容StandAlone/Cluster/Sentinel等多種SDK模式,方便業務搬遷上雲。而Codis的相容性則顯得很差。

揭祕GaussDB(for Redis):全面對比Codis

2、穩定性

自建Codis叢集穩定性強依賴開源Redis能力,不論是擴容還是大key場景,都有相同痛點,在此不再贅述。

GaussDB(for Redis)自研架構完全解決了開源Redis的fork問題,穩定性大幅提升;同時,在與分散式儲存池架構的深度合作下,資料的可靠性也全面優於Codis。

3、成本

Codis依然是傳統純記憶體Redis的封裝,業務存不了多少就會觸及成本痛點。隨著業務長期發展,逐漸也會有資料降冷(如APP的冷使用者),此時Codis裡真正有價值的熱資料佔比越來越低,全量資料在記憶體中成本會相當高。

GaussDB(for Redis)的算力則按需選配,儲存價格低,非常適合大容量KV儲存場景。

四、總結

Codis是很多開發和運維同學曾經青睞的產品,是時代的記憶,但是,技術在快速發展。在這裡,建議使用了Codis的業務可以考慮使用GaussDB(for Redis),感受華為雲這款企業級KV資料庫的全新價值。

五、附錄

  • 本文作者:

華為雲資料庫GaussDB(for Redis)團隊

  • 更多產品資訊,歡迎訪問官方部落格:

 

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章