写点什么

揭秘 GaussDB(for Redis):全面对比 Codis

  • 2022 年 6 月 25 日
  • 本文字数:1594 字

    阅读完需:约 5 分钟

揭秘GaussDB(for Redis):全面对比Codis

本文分享自华为云社区《华为云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)。



Codis 的确很优秀,不过我们可以负责任地说:


华为云 KV 数据库 GaussDB(for Redis)更优秀!

二、GaussDB(for Redis) vs 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 的兼容性则显得很差。


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)团队

  • 更多产品信息,欢迎访问官方博客:bbs.huaweicloud.com/blogs/248875


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
揭秘GaussDB(for Redis):全面对比Codis_数据库_华为云开发者联盟_InfoQ写作社区