分布式版Redis架构
分布式版Redis采用Proxy代理+Redis分片架构,代理仅支持单机Redis的使用方式,cluster集群的Redis分片可以在无代理的情况下使用,但是仅支持原生集群的使用方式,需要根据客户端的类型来选择使用方式(命令限制见FAQs)。 Redis分片基于主备版Redis资源池,轻松突破Redis自身单线程瓶颈,支持在线扩容可极大满足对于Redis大容量或高性能的业务需求。
1.分布式版Redis架构
分布式版Redis的每个Redis分片就是一个主备版Redis,同主备版Redis共享资源池,架构同主备版Redis高可用架构。单个分片的容量限制和扩缩容规则同主备版Redis保持一致。 分布式版Redis的代理是高可用架构,容器版代理当宿主机宕机时会由系统自动迁移至其他宿主机;快杰版代理由一主一备两台主机组成,主宕机后会由系统将高可用IP迁移至备主机。
2.分布式高性能udredis(22年4月升级前创建版本)与cluster集群的对比
2022年4月以后创建的分布式版Redis后端Redis集群已经默认升级为cluster集群。
相同点
在操作上,除代理外,两者操作相同,都可以在控制台分分片管理上对分片容量进行扩缩容,也可以对节点进行拆分操作。 节点都提供主备节点,保证节点的高可用。 cluster集群同样支持添加代理,使用代理来适配单机Redis的用法。
不同点
cluster集群支持无代理使用,客户端使用集群模式连接后端Redis分片后直接使用。分布式高性能udredis则必须使用代理连接。 cluster集群支持所有Redis原生cluster命令(除了集群管理或禁用的命令),但同时也受到原生cluster命令的限制,比如涉及到多个key slot键值的命令如mget,keys。 cluster集群可以选择4.0、5.0、6.0版本创建。 性能上,cluster集群命令请求直接发送到后端Redis分片,而分布式高性能udredis需要经过代理转发到后端Redis分片,所以直连cluster集群的性能会优于分布式高性能udredis。
3、分布式版Redis代理配置模式
主从型代理各代理提供一个ip入口,用户可以自由配置代理入口
负载均衡型代理模式下,集群只提供一个ip入口,业务集中发到ULB4上,由ULB4 Server进行故障下线和请求均衡
4.分布式版Redis代理内部架构
分布式版Redis代理内部由多个Proxy进程(RedisProxy)组成,系统内核会对客户端连接做连接均衡,绑定到某个Proxy进程。 分布式版Redis代理内部会有1个处理多key命令的进程(BusyProxy)来处理复杂的查询。
分布式版Redis cluster采用多Redis节点架构,单节点基于主备版Redis资源池,备节点保持高可用,轻松突破Redis自身单线程瓶颈,支持在线扩容可极大满足对于Redis大容量或高性能的业务需求。
版本升级
2022.4月中 cluster集群版本做出调整升级。
1.创建的实例ID不再以udrediscluster-开头,改为udredis-开头。
2.新建的实例默认都为cluster集群,key slot跟原生Redis cluster保持一致为0-16383,目前可以通过key slot区分后端为cluster集群还是代理分片。