摘要:其實游戲客戶對資料庫的訴求是很明確的,資料庫應當“放心存放心用”,
本文分享自華為云社區《華為云GaussDB(for Redis)揭秘第27期:聊聊游戲業務怎么用高斯Redis》,作者:高斯Redis官方博客,
華為云資料庫團隊是比較重視技術洞察的,對客戶真實的業務場景也比較看重,年初出差了幾次游戲客戶現場,有幸跟客戶的業務開發和運維聊了聊,發現游戲對Redis的應用其實很多,不過一般都會對自建的開源Redis吐槽比較多,其實也都是常見問題了,例如:
痛點1:開源Redis全部資料放記憶體,存不下全量玩家,有成本瓶頸
像玩家裝備、福利活動領取記錄、朋友圈發帖等等,這類資料其實很適合用NoSQL資料庫存盤,擴展性好,性能高,但開源Redis將全量資料加載進記憶體,等到后期玩家持續上量后,成本扛不住,導致騎虎難下,
痛點2:全域大key會導致分片資料傾斜,動不動OOM
全域排行榜、發券搶券都難免會有些使用大Key的場景,這時雖然開源Redis的性能沒啥問題,但由于Redis集群中每個分片能“裝”的資料很少,如果個別Key太大,就很容易會導致資料傾斜,有些分片會經常發生OOM,影響業務,
痛點3:擴容慢,對業務影響大
游戲開服、節假榷訓動,都需要預置充足資源,開源Redis做擴容會是個麻煩事,由于要跨分片做資料的拷貝,因此往往動輒半小時以上,而且考慮到對業務的影響,客戶只能在半夜實施擴容,
其實,此類問題已經存在很多年了,業界是有一些解法的,比如用SSD替代記憶體的自建KV存盤方案,或者AWS那種比較先進的MemoryDB資料庫服務,都能或多或少解決一些開源Redis的使用痛點,
針對這類游戲場景,華為云也提供一款足夠靠譜的云資料庫:GaussDB(for Redis),
GaussDB(for Redis)是華為云資料庫團隊在吸取了開源Redis的經驗教訓后,自主研發的KV資料庫,兼容開源Redis協議,采用存算分離的架構,提供了很多好用的企業級特性,針對幾種常見的游戲業務痛點,展開來說:
企業級特性1:采用記憶體+NVMe的存盤方案,自動冷熱交換,實作有效降本30%+
使用Redis的場景必然需要資料庫能提供高性能、低時延的有力支撐,GaussDB(for Redis)除了將全量資料落盤到NVMe存盤池外,還支持快取高頻訪問的熱資料存在記憶體中,內部自動完成冷熱資料交換,通過LRU演算法淘汰冷資料,業務能優先從記憶體中讀取熱資料,最終端到端達成業務對高并發和低時延的訴求,
同時,GaussDB(for Redis)分布式NVMe存盤池具有高壓縮比,根據實際業務測驗,string、hash等常用資料型別在GaussDB(for Redis)實際存盤空間占用僅為開源Redis的70%~85%,GaussDB(for Redis)最多可支撐36TB資料存盤,資料量越多,相比開源Redis的成本越低,
企業級特性2:存盤池統一管理全量Key,不會發生資料傾斜,極少OOM,更穩定
開源Redis存盤大key會導致分片記憶體消耗不均,隨著集群整體資料量水位提升,大key所在分片隨時有OOM風險,在擴容和洗掉大key時,業務訪問會被阻塞甚至資料丟失,
GaussDB(for Redis)支持大key可靠存盤,且不會導致分片OOM,另外,在GaussDB(for Redis)的控制臺WebClient可以輕松一鍵進行“大Key診斷”,隨時都能掌握業務使用的大Key情況,
企業級特性3:真正的秒級彈性伸縮,運營節榷訓動更輕松
開源Redis擴縮容涉及資料的拷貝遷移,速度慢,業務中斷時間長,業務在流量突增的場景,需要緊急快速擴容,否則會影響用戶體驗,甚至給客戶帶來經濟損失,
GaussDB(for Redis)采用存算分離的架構,擴容不需要遷移存盤池中的資料,只需將資料分片資訊均衡到新增加的計算節點上即可,不涉及遷移資料,可以秒級完成,對業務影響小,
總結
其實游戲客戶對資料庫的訴求是很明確的,資料庫應當“放心存放心用”,GaussDB(for Redis)是一款超越開源Redis的企業級KV資料庫,既能滿足游戲業務對高并發的性能指標要求,且能有效降本增效,后續還會給大家聊聊GaussDB(for Redis)針對其他業務場景的痛點退出的企業級特性,盡請期待,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/546375.html
標籤:其它
