Linux CentOS / Fedora / RHEL 下 Redis 哨兵集群部署搭建 3台机器(一主一从一哨兵/每台)一共3主3从3哨兵

一、Sentinel 模式介绍

Redis-Sentinel 是 Redis 给我们提供的一种高可用解决方案,Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。Sentinel可以监视任意多个主服务器以及主服务器属下的从服务器,并在被监视的主服务器下线时,自动执行故障转移操作。

sentinel 中文含义为哨兵,所以又可以叫哨兵模式,其特点如下:

  • sentinel 模式是建立在主从模式的基础上,如果只有一个 Redis 节点,sentinel 就没有任何意义
  • 当 master 挂了以后,sentinel 会在 slave 中选择一个做为 master,并修改它们的配置文件,其他 slave 的配置文件也会被修改,比如 slaveof 属性会指向新的 master
  • 当master重新启动后,它将不再是master而是做为slave接收新的master的同步数据
  • sentinel因为也是一个进程有挂掉的可能,所以sentinel也会启动多个形成一个sentinel集群
  • 多sentinel配置的时候,sentinel之间也会自动监控
  • 当主从模式配置密码时,sentinel也会同步将配置信息修改到配置文件中,不需要担心
  • 一个sentinel或sentinel集群可以管理多个主从Redis,多个sentinel也可以监控同一个redis
  • sentinel最好不要和Redis部署在同一台机器,不然Redis的服务器挂了以后,sentinel也挂了

Sentinel 模式的原理:
在这里插入图片描述
Sentinel 模式的工作机制:

  • 每个 sentinel 以每秒钟一次的频率向它所知的 master,slave 以及其他 sentinel 实例发送一个 PING 命令
  • 如果一个实例距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 sentinel 标记为主观下线。
  • 如果一个 master 被标记为主观下线,则正在监视这个 master 的所有 sentinel 要以每秒一次的频率确认 master 的确进入了主观下线状态
  • 当有足够数量的 sentinel(大于等于配置文件指定的值)在指定的时间范围内确认 master 的确进入了主观下线状态, 则 master 会被标记为客观下线
  • 在一般情况下, 每个 sentinel 会以每 10 秒一次的频率向它已知的所有 master,slave 发送 INFO 命令
  • 当 master 被 sentinel 标记为客观下线时,sentinel 向下线的 master 的所有 slave 发送 INFO 命令的频率会从 10 秒一次改为 1 秒一次
  • 若没有足够数量的 sentinel 同意 master 已经下线,master 的客观下线状态就会被移除;若 master 重新向 sentinel 的 PING 命令返回有效回复,master 的主观下线状态就会被移除
  • 从redis层面谈高可用高并发,哨兵模式集群1.首先Redis单实例主要有单点,容量有限,流量压力上限的问题。
  • Redis单点故障,可以通过主从复制replication,和自动故障转移sentinel哨兵机制。但Redis单Master实例提供读写服务,仍然有容量和压力问题,并发问题redis官方声称可以达到 10万/每秒,每秒执行10万条命令
  • 假如业务需要每秒100万的命令执行呢?解决方案如下
    正确的应该是考虑分布式,加机器,把数据分到不同的位置,分摊集中式的压力,一堆机器做一件事.还需要一定的机制保证数据分区,并且数据在各个主Master节点间不能混乱,当然最好还能支持在线数据热迁移的特性。这时候就该redis-cluster集群。
  • redis中哨兵模式和集群模式的区别:哨兵可以对redis节点进行监控,在主节点出现故障后,能将某个从节点升级为主节点,进行主从切换故障转移,目的是为了高可用。
  • 而集群模式,为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器。目的是为了高并发,两种模式都可以自动进行故障转移。

当使用 sentinel 模式的时候,客户端就不要直接连接 Redis,而是连接sentinel 的 ip 和 port,由 sentinel 来提供具体的可提供服务的 Redis 实现,这样当 master 节点挂掉以后,sentinel 就会感知并将新的 master 节点提供给使用者。

二、环境准备

1.下载软件安装包Redis
2.服务器信息 主节点端口 7001,从节点端口 7002,哨兵节点端口27001,每台端口一样,同一台服务器上不是直接主从关系。
第一台 127.0.0.1
shard-master1
shard-slave3
第二台 127.0.0.2
shard-master2
shard-slave1
第三台 127.0.0.3
shard-master3
shard-slave2

份数 127.0.0.1 127.0.0.2 127.0.0.3
副本1 主1 从1 哨兵
副本2 哨兵 主2 从2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值