35 Codis VS Redis Cluster:我该选择哪一个集群方案?

本文对比了 Codis 和 Redis Cluster 的集群方案,详细介绍了 Codis 的架构、处理请求流程、数据分布及迁移原理,并讨论了集群的可靠性与客户端兼容性。 Codis 的优势在于其对现有 Redis 客户端的兼容性,以及在数据迁移时的低影响,适合需要稳定性和客户端兼容性的场景。
摘要由CSDN通过智能技术生成

Redis 切片集群中含有大量的实例对象,可以用于保存大量的数据,其中 Redis 官方在提出了 Redis Cluster 集群机制之前,被广泛的应用的是 Codis 集群机制。

一、Codis 的整体架构和基本流程

Codis 集群中包含了 4 类关键组件

  • codis server:这是进行了二次开发的 Redis 实例,其中增加了额外的数据结构,支持数据迁移操作,主要负责处理具体的数据读写请求。
  • codis proxy:接收客户端请求,并把请求转发给 codis server。
  • Zookeeper 集群:保存集群元数据,例如包括路由表、proxy 实例信息等信息。(除了使用 Zookeeper,Codis 还可以使用 etcd(用于分布式多个节点共享数据的共享存储组件) 或本地文件系统保存元数据信息)
  • codis dashboard 和 codis fe:共同组成了集群管理工具。其中,codis dashboard 负责执行集群管理工作,包括增删 codis server、codis proxy 和进行数据迁移。而 codisfe 负责提供 dashboard 的 Web 操作界面,便于我们直接在 Web 界面上进行集群管理。
    在这里插入图片描述

二、Codis 处理请求的过程?

  • 首先,为了让集群能接收并处理请求,我们要先使用 codis dashboard 设置 codis server和 codis proxy 的访问地址,完成设置后,codis server 和 codis proxy 才会开始接收连接。
  • 然后,当客户端要读写数据时,客户端直接和 codis proxy 建立连接。你可能会担心,既然客户端连接的是 proxy,是不是需要修改客户端,才能访问 proxy?其实,你不用担心,codis proxy 本身支持 Redis 的 RESP 交互协议(基于 TCP 应用层协议的 Redis 序列化协议,同样也是基于 TCP 的一个 Request / Response 协议,虽然是 Redis 中的协议,但是同样也可以应用到 C/S 结构的应用中),所以,客户端访问 codis proxy时,和访问原生的 Redis 实例没有什么区别,这样一来,原本连接单实例的客户端就可以轻松地和 Codis 集群建立起连接了。
  • 最后,codis proxy 接收到请求,就会查询请求数据和 codis server 的映射关系,并把请求转发给相应的 codis server 进行处理。当 codis server 处理完请求后,会把结果返回给codis proxy,proxy 再把数据返回给客户端。

三、Codis 的关键技术原理

影响到 Redis 切片集群的四个主要方面的因素:数据的分布,集群扩容和数据迁移,客户端的兼容性,数据可靠性保证。

(1)Codis 数据如何在集群里分布?

在 Codis 集群中,一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值