redis集群方式及高可用架构

lancelottsang
发布于 2022-4-25 15:29
浏览
0收藏

作者 | 怪兽在此
来源 | 今日头条

Redis集群模式

1.主从模式,单台服务器即可,无高可用,为1主2从方式

主节点可读写,从节点只读,数据会从主节点同步至从节点

2.cluster模式 3.0以上版本支持

Redis Cluster基本架构:Redis Cluster中有多个主节点,每个主节点都负责进行数据读写操作,并且每个节点之间会进行通信。

保证高可用,每个主节点都至少有一个从节点,当主节点故障,Cluster会按照规则实现主备的高可用性,对于节点来说,有一个配置项:cluster-enabled,即是否以集群模式启动

Redis cluster集群至少需要三个master节点,实现集群高可用需要六台服务器布置节点。

集群架构:redis集群方式及高可用架构-鸿蒙开发者社区

redis cluster是一个去中心化的集群,每个节点都会跟其他节点保持连接,每个节点之间会互相通信。

每个master可以对应多个slave 以保证master挂掉之后新的slave成为主节点而没有salve。

以下以云厂商redis集群架构模式介绍

阿里云redis集群架构

主从模式redis集群方式及高可用架构-鸿蒙开发者社区

高可用架构redis集群方式及高可用架构-鸿蒙开发者社区

华为云redis架构

主从版redis集群方式及高可用架构-鸿蒙开发者社区

集群高可用版redis集群方式及高可用架构-鸿蒙开发者社区

以下是私有化部署方式

私有化部署时三种方式 主从模式 官方redis cluster模式 redis sentinel模式

Redis 集群 有几个master节点就会有几个redis地址。

Redis cluster可以使用官方提供的ruby脚本完成部署redis集群方式及高可用架构-鸿蒙开发者社区

Redis sentinel 集群实现高可用

哨兵模式是利用主从架构对master进行监控,当master挂掉之后挑选slave作为master节点redis集群方式及高可用架构-鸿蒙开发者社区

哨兵模式是所有的客户端都通过 sentinel程序获取redis的master服务。

Redis cluster:

优点:

1.可扩展:可线性扩展到 1000 多个节点,节点可动态添加或删除;

2.高可用性:部分节点不可用时,集群仍可用。通过增加 Slave 做 standby 数据副本,能够实现故障自动 failover,节点之间通过 gossip 协议交换状态信息,用投票机制完成 Slave 到 Master 的角色提升;

缺点:

1.节点会因为某些原因发生阻塞(阻塞时间大于 clutser-node-timeout),被判断下线,这种 failover 是没有必要的。

2.数据通过异步复制,不保证数据的强一致性。

3.多个业务使用同一套集群时,无法根据统计区分冷热数据,资源隔离性较差,容易出现相互影响的情况。

4.不支持多数据库空间,单机下的 redis 可以支持到 16 个数据库,集群模式下只能使用 1 个数据库空间,即 db0

Redis Sentinel 哨兵模式:

优点:

1.相比主从版 可以检测master状态

2.可实现master动态转移

3.可以实现一套 Sentinel 监控一组 Redis 数据节点或多组数据节点

缺点:

1.如果是从节点下线了,sentinel是不会对其进行故障转移的,连接从节点的客户端也无法获

2.取到新的可用从节点。

3.不保证数据的强一致性,无法实现动态扩容。

分类
收藏
回复
举报
回复
    相关推荐