Redis哨兵Sentinel

版权声明:guojawee https://blog.csdn.net/weixin_36750623/article/details/84197405

Sentinel是Redis的高可用性解决方案:由一个或多个Sentinel示例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器的某个从服务器升级为主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

info Replication # 查看服务器的当前状态
config get slave-read-only # 获得服务器的slave-read-only属性
config set slave-read-only no # 配置服务器的slave-read-only属性为no

在这里插入图片描述

当master服务器shutdown后,手动配置(1)(2)
(1)让slaver1变成新的master

  1. 命令该服务器slaver1不做其他redis服务器的slaver:slaveof no one
  2. 运行时修改slave-read-only为no,使其可写:config set slave-read-only no

(2)其他的slaver

  • 命令该服务为新master的slave:slaveof IP Port

Sentinel监控主从服务器

实现原理:Sentinel不断的与master进行通信,当通信失败时,就会自动将slave1切换成master,将slaver2切换成slaver1
在这里插入图片描述

  1. Sentinel监控配置
1.切换当前的工作目录为/sur/local/redis

2.~/redis-5.0.0/sentinel.conf拷贝到当前目录
[gjw@localhost redis]$ sudo cp ~/redis-5.0.0/sentinel.conf .

3.打开sentinel.conf配置文件,查看下面相关配置信息
sentinel monitor mymaster 127.0.0.1 6379 1  # 有1个哨兵监视到master shutdown了,就认为master shutdown了
sentinel down-after-milliseconds mymaster 30000  # 30s连不上,就认为master shutdown了
sentinel parallel-syncs mymaster 1 # 同时把1台slaver指向新的master上,防止新的master IO剧增
sentinel failover-timeout mymaster 180000 # 15min内没有完成设想的过程,则认为这次切换过程失败了,就发个脚本/来个短信通知

4.配置redis_slaver1.conf的优先级选项slave-priority,使得当master shutdown后,优先启动该机器作为新的master

  1. 测试一主两从的Sentinel监控
1. 开启3台服务器,分别为master、slaver1、slaver2
2. 开启sentinel监控,./bin/redis-server ./sentinel.conf --sentinel
3. 关闭掉master,观察sentinel监控打印的信息,一段时间后,master会发生切换

猜你喜欢

转载自blog.csdn.net/weixin_36750623/article/details/84197405