Redis主从自动切换(无密码认证)(centos7)

服务器IP
Redis服务器(主)192.168.1.160
Redis服务器(从)192.168.1.170
Redis服务器(哨兵)192.168.1.180

一、服务器安装redis服务

参考博客:https://blog.csdn.net/renfeigui0/article/details/102986507

二、服务器160、170配置主从,使主从复制工作正常运行

1、服务器160、170配置主从复制。参考博客:https://blog.csdn.net/renfeigui0/article/details/102983135

2、服务器170查找并编辑redis.conf,在下图所示位置**“JUST COMMENT THE FOLLOWING LINE.”**下方,增加redis服务器本机IP(192.168.1.170),设置后其他主机(哨兵)才可以远程访问本机的redis服务,未设置则只能本机127.0.0.1才可访问redis服务。
在这里插入图片描述
3、确保服务器210、220,开放防火墙6379端口。

firewall-cmd --zone=public --add-port=6379/tcp --permanent  
firewall-cmd --reload
firewall-cmd --zone=public --query-port=6379/tcp

三、服务器180开启sentinel(哨兵)服务,监控主从复制运行状态

1、编辑sentinel的配置文件,修改后如下图。

find / -name sentinel.conf
cp  /usr/local/redis/sentinel.conf     /usr/local/redis/sentinel26379.conf    #备份sentinel配置文件
vi /usr/local/redis/sentinel26379.conf
protected-mode  no    #关闭保护模式,允许远程主机访问
port 26379          #sentinel端口
daemonize yes				# 设置sentinel服务后台启动
sentinel monitor mymaster 192.168.1.160  6379 2   #监控主节点的IP地址端口,监控的master的名字叫做mymaster,2表示当有2个sentinel认为master已经不可用时,才可以自动进行主从切换。若只有一个sentinel实例,则设置为1。

在这里插入图片描述
在这里插入图片描述

2、启动26379端口sentinel服务。

/usr/local/redis/src/redis-sentinel      /usr/local/redis/sentinel26379.conf
netstat -anp |grep redis

在这里插入图片描述

3、启动客户端,登录26379端口,查看sentinel信息,ok表明已正常监控,如下图。

/usr/local/redis/src/redis-cli -p 26379
info sentinel

在这里插入图片描述

四、测试160、170服务器主从自动切换

1、关闭160服务器redis服务。

/usr/local/redis/src/redis-cli -p 6379 shutdown
netstat -anp |grep redis

2、服务器170打开客户端,查看redis身份信息,自动的切换成master(需等待30秒才会自动切换)。
在这里插入图片描述
3、服务器180,打开端口26379客户端,查看sentinel信息,也可看到master的IP变化。
在这里插入图片描述

4、再次启动160服务器redis服务,打开客户端,查看redis身份信息,自动的切换成slave(需等待30秒才会自动切换)。

在这里插入图片描述

4、如果在同一服务器启动多个sentinel实例,需为每个sentinel实例单独创建配置文件,配置不同端口,除端口号外,其他配置相同。启动26379、26380、26381端口sentinel服务。启动客户端,登录26381端口,查看sentinel信息,如下图。

在这里插入图片描述

五、sentinel服务总结

一、sentinel的作用

一、redis的sentinel哨兵系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。
1、监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态,并且实现自动切换。
2、提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。
3、自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口。

二、sentinel部署建议

1、按奇数个部署,至少要部署3个,哨兵之间、Redis实例之间物理机独立。
2、sentinel monitor master xxx.xxx.xxx.xxx xxxx 1,哨兵的这个配置最好不要配置为1。quorum的值为1意味着只要一个sentinel发现master节点无响应就可以标记为客观下线,从而发起主从切换。quorum最好设置超过sentinel个数的一半向上取整。
3、条件允许的情况下尽可能缩短这个切换间隔吧。entinel failover-timeout master 900000 //毫秒级

三、sentinel主从切换失败的原因

1、如果是因为大部分sentinel都挂了,不足以选举出leader,选择一个存活的sentinel强制执行sentinel failover,如果有备选slave成功被提升为master,客户端应用不需重启。
2、如果是因为哨兵没有选举成功,看等待时间是否还能忍,能忍就等待下次failover,否则同1步骤。
3、如果是因为没有slave通过筛选,建议停止全部哨兵,将某个slave提升为master,修改哨兵配置指向这个新的master,重启哨兵,重启客户端应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值