摘要: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)。

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

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

揭秘GaussDB(for Redis):全面对比Codis的更多相关文章

  1. 第十一课——codis-server的高可用,对比codis和redis cluster的优缺点

    [作业描述] 1.配置codis-ha 2.总结对比codis的集群方式和redis的cluster集群的优缺点 =========================================== ...

  2. 华为云PB级数据库GaussDB(for Redis)揭秘第七期:高斯Redis与强一致

    摘要:在KV数据库领域,"强一致性"不仅是一个技术名词,它更是业务与运维的重要需求. 清明刚过,五一假期就要来了.大好春光,不如去婺源看油菜花吧!小云迅速打开APP刷出余票2张,赶 ...

  3. 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

    摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...

  4. 深度评测丨 GaussDB(for Redis) 大 Key 操作的影响

    本文分享自华为云社区<墨天轮评测:GaussDB(for Redis)大Key操作的影响>,作者: 高斯 Redis 官方博客. 在前一篇文章<墨天轮评测:GaussDB(for R ...

  5. Ignite性能测试以及对redis的对比

    测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...

  6. 豌豆夹Redis解决方式Codis源代码剖析:Proxy代理

    豌豆夹Redis解决方式Codis源代码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描写叙述: Codis is a proxy b ...

  7. .NET 环境中使用RabbitMQ RabbitMQ与Redis队列对比 RabbitMQ入门与使用篇

    .NET 环境中使用RabbitMQ   在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的 ...

  8. [转帖]TimesTen与Redis的对比

    TimesTen与Redis的对比 2017-02-23 17:25:27 dingdingfish 阅读数 3682更多 分类专栏: TimesTen Oracle Redis In-Memory ...

  9. RabbitMQ与Redis队列对比

    本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中 ...

随机推荐

  1. 学习打卡day14&&构建之法阅读笔记第二篇

    对于书中所提到的结对编程我还是有些许感受的,在大二上学期我就有和同学合作,共同完成编码.有时候可能是我来做非常非常简易的前端页面部分,然后给同学一个基础框架,让同学往框架里面填充,时而遇到问题我再来沟 ...

  2. Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟

    传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 ...

  3. 【FAQ】干货满满,接入HMS Core应用内支付服务过程中一些常见问题总结(2)来啦

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档 上次,我们分享和总 ...

  4. linux脚本执行jar包运行

    以下为linux下运行jar包的脚本(只需替换jar包名称): #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=ruoyi-admin.jar cd `di ...

  5. 树莓派开发笔记(十二):入手研华ADVANTECH工控树莓派UNO-220套件(一):介绍和运行系统

    前言   树莓派也可以做商业应用,工业控制,其稳定性和可靠性已经得到了验证,故而工业控制,一些停车场等场景也有采用树莓派作为主控的,本片介绍了研华ADVANTECH的树莓派套件组UNO-220-P4N ...

  6. [题解][YZOJ50113] 枇杷树

    简要题意 \(m\) 个操作,每次操作都会产生一个树的版本 \((\)从 \(0\) 开始\()\). 一次操作把 \(x_i\) 版本的树的点 \(u\) 和 \(y_i\) 版本的树的点 \(v\ ...

  7. DevOps、CI、CD都是什么鬼?

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ DevOps DevOps是Development和Operations的组合,是一种方法论, ...

  8. IP地址的格式和分类,你都清楚吗?

    一个执着于技术的公众号 在网际层中,利用 IP 地址将数据传输到目的地.为了能够使数据正确地发送到目标主机上,网络上的 IP 地址必须有一定的规则来识别主机的位置. IP地址的基本构成 为了便于寻址, ...

  9. 经过一个多月的等待我有幸成为Spring相关项目的Contributor

    给开源项目尤其是Spring这种知名度高的项目贡献代码是比较难的,起码胖哥是这么认为的.有些时候我们的灵感未必契合作者的设计意图,即使你的代码十分优雅. 我曾经给Spring Security提交了一 ...

  10. 基础路径规划算法(Dijikstra、A*、D*)总结

    引言 在一张固定地图上选择一条路径,当存在多条可选的路径之时,需要选择代价最小的那条路径.我们称这类问题为最短路径的选择问题.解决这个问题最经典的算法为Dijikstra算法,其通过贪心选择的步骤从源 ...