企业级GaussDB(for Redis)与开源Redis对比优势
【摘要】 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感知。
二、开源Redis Cluster介绍
痛点
- 不可靠:内存易失,AOF仅能秒级落盘,无法用于存储核心数据
- 不稳定:fork问题常导致内存OOM,引发连锁反应,殃及系统下游
- 弱一致:主从切换必然导致脏读,商品超卖/计数不准等等,踩坑的总是业务
- 扩容慢:扩容时数据发生跨节点拷贝,速度慢,关键时刻干着急
- 访问麻烦:必须使用专门的cluster模式客户端,增加业务复杂性
- 内存浪费:fork问题导致近一半内存闲置;半数节点是备,日常闲置
- 贵:1g、2g还感觉不到,等后期数据上量后,发现纯内存成本极高
架构
开源Redis Cluster架构示意图如下:
三、更多维度对比
适用业务场景
|
企业级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)