redis集群方式及高可用架构

Redis集群模式

1.主从模式,单台服务器即可,无高可用,为1主2从方式
主节点可读写,从节点只读,数据会从主节点同步至从节点
2.cluster模式 3.0以上版本支持
Redis Cluster基本架构:Redis Cluster中有多个主节点,每个主节点都负责进行数据读写操作,并且每个节点之间会进行通信。
保证高可用,每个主节点都至少有一个从节点,当主节点故障,Cluster会按照规则实现主备的高可用性,对于节点来说,有一个配置项:cluster-enabled,即是否以集群模式启动
Redis cluster集群至少需要三个master节点,实现集群高可用需要六台服务器布置节点。
集群架构:
redis集群方式及高可用架构_第1张图片

redis cluster是一个去中心化的集群,每个节点都会跟其他节点保持连接,每个节点之间会互相通信。
每个master可以对应多个slave 以保证master挂掉之后新的slave成为主节点而没有salve。

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

阿里云redis集群架构
主从模式
redis集群方式及高可用架构_第2张图片
高可用架构模式
redis集群方式及高可用架构_第3张图片

阿里云通过内部SLB方式对外开放一个redis地址以实现高可用 阿里云 提供 2.8、 4.0、 5.0版本

华为云redis架构
主从版

redis集群方式及高可用架构_第4张图片
集群高可用版
redis集群方式及高可用架构_第5张图片
云厂商的高可用集群架构模式没有使用官方推荐的集群模式

私有化部署时三种方式 主从模式 官方redis cluster模式 redis sentinel模式
Redis 集群 有几个master节点就会有几个redis地址。
Redis cluster可以使用官方提供的ruby脚本完成部署
redis集群方式及高可用架构_第6张图片
Redis sentinel 集群实现高可用
哨兵模式是利用主从架构对master进行监控,当master挂掉之后挑选slave作为master节点
redis集群方式及高可用架构_第7张图片
哨兵模式是所有的客户端都通过 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.不保证数据的强一致性,无法实现动态扩容。

你可能感兴趣的:(Devops,redis,架构,缓存)