企业级GaussDB(for Redis)与开源Redis对比优势

举报
GeminiDB-Redis博客 发表于 2021/07/30 19:20:05 2021/07/30
【摘要】 GaussDB(for Redis)与开源Redis对比优势

云数据库GaussDB(for Redis)作为华为云旗下企业级Redis,致力于为企业客户提供稳定可靠、超高并发,且能够极速弹性扩容的核心数据存储服务。更多详情可访问官方技术博客


一、GaussDB(for Redis)介绍

优势

  • 核心数据存储全量数据落盘,3副本冗余,不怕丢数据
  • 高可用:秒级故障接管,即使N-1节点故障全量数据也可用
  • 低时延自动冷热分离,亚毫秒级时延,能Hold缓存场景
  • 高吞吐全部节点可写,QPS可水平扩展,能抗流量高峰
  • 强一致3副本强一致同步,不会发生脏读,业务免踩坑
  • 秒扩容例如:8g到64g扩容只需1秒,且对业务0影响
  • 降成本数据量越大价格越香,能够真正帮用户省成本

架构

GaussDB(for Redis)拥有先进的存算分离架构:

  • 计算层

        提供可弹性伸缩的吞吐性能。ELB+Proxy架构,用单机模式客户端即可快速接入业务。

  • 存储层

        提供高可靠的数据存储能力。数据三副本、强一致存储。扩容秒级完成,业务0感知。

帮助文档的架构图.png

二、开源Redis Cluster介绍

痛点

  • 不可靠:内存易失,AOF仅能秒级落盘,无法用于存储核心数据
  • 不稳定:fork问题常导致内存OOM,引发连锁反应,殃及系统下游
  • 弱一致:主从切换必然导致脏读,商品超卖/计数不准等等,踩坑的总是业务
  • 扩容慢扩容时数据发生跨节点拷贝,速度慢,关键时刻干着急
  • 访问麻烦:必须使用专门的cluster模式客户端,增加业务复杂性
  • 内存浪费fork问题导致近一半内存闲置;半数节点是备,日常闲置
  • 1g、2g还感觉不到,等后期数据上量后,发现纯内存成本极高

架构

开源Redis Cluster架构示意图如下:

开源redis架构.png

三、更多维度对比

适用业务场景

 

企业级GaussDB(for Redis)

开源Redis

业务场景

特点:
① 关心重要数据安全
② 关心系统稳定性,不希望高峰期间发生宕机
③ 关心数据一致性
数据量:
- 对于一般缓存场景,GaussDB(for Redis)提供亚毫秒级时延+高稳定
- 对于核心存储场景,GaussDB(for Redis)提供稳定可靠存储+低成本
特点:
① 对数据安全性要求低,接受核心数据丢失或被LRU挤出
② 对稳定性要求低,接受OOM宕机发生
③ 接受多点访问数据不一致
数据量:
- 往往只能用于数据量小、数据有效期短的业务

 

更多维度

 

企业级GaussDB(for Redis)

开源Redis

成本

成本降低75%~90%
全量数据落盘,采用GaussDB基础组件服务,拥有极大价格优势。
硬件成本极高
全部数据保存在纯内存介质中,且自身fork机制导致内存使用率低。

最大容量

支持PB级
存算分离架构让存储资源自由扩容。同时计算层资源也可同步弹性伸缩,性能有保障。
百GB级别
开源Redis Cluster如果进一步增加数据量,一方面将导致硬件成本陡增难以承受,另一方面其内部Gossip集群管理效率将变得极低。

容量利用率

100%
纯自研架构,不受fork问题影响,用户购买的持久化存储空间几乎全部可用。
<50%
开源Redis受独fork机制影响,在快照、主从复制、AOF重写期间,如遇业务高峰,理论上内存可增长一倍。因此,内存使用率控制在50%以内,才能确保安全

规格选型

1GB细粒度,随时按需调整 档位不连续(...32G、48G、64G)
假设业务数据量约30G。如选用云缓存Redis,考虑到安全有效容量<50%,只能选64G规格。造成“买多”浪费。

数据压缩

逻辑压缩+物理压缩结合,比开源Redis更省空间
- 逻辑压缩:对value进行初步压缩
- 物理压缩:对存储介质中的数据块整体进行二次压缩
- 根据实际业务测试,string、hash等常用结构在GaussDB(for Redis)实例中,存储空间占用仅为开源Redis的70%~85%
只使用逻辑压缩

时延

平均时延差距不大,p9999表现有一定差距 平均时延较低,p9999时延较低

抗写能力

【强】
多节点可以同时写入,且采用多线程架构,吞吐轻松翻倍
【弱】
集群中仅主节点可写,且属于单线程架构,业务高峰有OOM宕机风险

数据可靠性

【高】
逐条命令实时落盘,底层三副本冗余存储,无数据丢失风险
【低】
内存数据秒级落盘,且主从异步复制不及时,存在数据丢失风险

数据一致性

【强一致性】
实现三副本强一致,多点访问无脏读风险
【弱一致性】
主从异步复制,多点访问存在数据不一致问题

可用性

【强】
即使N-1个节点同时故障,实例依然可用
【中等】
- 半数主节点发生宕机,集群将不可用
- 任一对主从宕机,集群将不可用

故障恢复

分钟级恢复,且数据恢复时长与数据量大小无关
在全量数据下沉存储的shared everything架构下,数据只需被可用节点接管即可,几乎不需耗时加载
数据量越大,恢复耗时越久
数据物理分散在多个独立节点上,故障恢复需要将RDB快照从磁盘加载进内存,耗时久

负载均衡

【支持】
细粒度数据分片,节点间实现动态负载均衡
【不支持】
需要依赖第三方组件

扩容

【平滑扩容】
- 节点扩容:分钟级完成,业务秒级感知
- 容量扩容:秒级完成,业务0感知
- share everything架构下,底层数据可被任一节点访问,扩容过程不发生数据拷贝搬迁,速度极快
【耗时长,对业务影响大】
- 各节点本地内存装载数据分片,迁移意味着新节点的加入以及数据的拷贝搬迁,耗时长

安全

【高】
① 内核采用纯自研架构,不存在开源Redis安全漏洞问题。
② 提供虚拟私有云、子网、安全组、DDoS防护以及SSL安全访问等多层安全防护体系,实现租户隔离和访问控制。

① 开源Redis内核不定期会爆出安全漏洞问题,如CVE-2021-32761等。如版本升级不及时,随时有被恶意利用风险。
② 网络环境安全级别取决于所使用的服务质量

运维

【一站式服务】
成熟的迁移方案、实时监控、故障预警、7*24h内核团队支撑
取决于所使用的服务质量

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。