使用sentinel进行redis主从切换的操作步骤(failOver故障转移)

 

 1、如果是链式Master-slaver-slaver-slaver,如果主服务器挂了,此时不会切换为slaver。
          此处和mongoDB 不一样,mongoDB只要有3台,就能自动切换,而redis,无论有几台slaver,都不会自动切换。
          因此需要使用sentinel进行自动切换。
 
 2、建议最基本的配置是:1台redis Master,1台redis slaver。另外再装至少2台sentinel服务器(1台的时候实践发现不能实现主从自动切换)
          且非常强烈要配置2台以上。
          
 3、安装步骤:
         1、和安装redis服务器一样,
              #tar -zxvf redis-2.8.19.tar.gz
              #cd redis-2.8.19
              #make
              #make install
 
  3、#mkdir log     
           #cd log
           #vi sentinel.log 并保存 #日志文件,可以tail查看

4、在redis-2.8.19的根目录下,vi sentinel.conf
port 26379
daemonize yes
logfile "./log/sentinel.log"
sentinel monitor 155Master 192.168.62.155 6379 2
sentinel auth-pass 155Master hezhixiong
sentinel down-after-milliseconds 155Master 5000
sentinel failover-timeout 155Master 900000
sentinel parallel-syncs 155Master 1
 
 解释:daemonize 后台运行
           sentinel monitor 155Master 192.168.62.155 6379  1 最后的 1代表,只要一台sentinel监听到Master异常就做切换,
           如果配置2-N,那么就需要N台sentinel实例,如果配置了2,但实际只有1台sentinel,那么即时master出现异常,也不会做Master-salver切换。

          sentinel auth-pass :需要主从的requirepass /masterauth 都配置该密码requirepass //masterauth 都配置该密码都配置该密码

5、防火墙打开端口(所有redis的sentinel服务器都要执行):

            #/sbin/iptables -I INPUT -p tcp --dport 26379 -j ACCEPT
            #/etc/init.d/iptables save
            #service iptables restart
 
      6、启动sentinel,监听如果Master挂了,此时进行自动切换
           src/redis-sentinel /soft/redis-2.8.19/sentinel.conf
           #(大家不需要执行该行语句)src/redis-sentinel /soft/redissentinel/redis-2.8.19/sentinel.conf
 
      7、在主从切换的时候可能网络报错。
          1、场景:主机挂了,从机生效。再次将主机拉起,理论上应该从当前的主机(原先的从机)同步数据,但日志报告
               Error condition on socket for SYNC: No route to host
           2、解决方法:1)粗暴解决:将所有redis的服务器的防火墙关闭。临时关闭:service iptables stop  永久关闭:chkconfig iptables off
                          2)防火墙打开端口:
                             #/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
                             #/etc/init.d/iptables save
                             #service iptables restart

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要安装Redis主从复制和哨兵模式,可以按照以下步骤进行操作: 1. 首先,确保已经在服务器上安装了Redis。可以通过以下命令检查是否已安装: ``` redis-server --version ``` 2. 如果Redis尚未安装,请按照操作系统的要求进行安装。对于Ubuntu,可以使用以下命令安装Redis: ``` sudo apt-get update sudo apt-get install redis-server ``` 3. 安装完成后,编辑Redis配置文件。可以使用以下命令打开配置文件: ``` sudo nano /etc/redis/redis.conf ``` 4. 在配置文件中找到并修改以下参数: ``` bind 0.0.0.0 protected-mode no slaveof <master-ip> <master-port> ``` 替换 `<master-ip>` 和 `<master-port>` 分别为Redis实例的IP地址和端口号。 5. 保存并关闭文件。 6. 启动Redis从节点。可以使用以下命令启动Redis从节点: ``` redis-server /etc/redis/redis.conf ``` 7. 配置Redis节点和哨兵。 - 编辑节点的配置文件(与步骤3相同)并设置适当的参数。 - 在哨兵节点上创建一个哨兵配置文件,例如 `sentinel.conf`。 - 在哨兵配置文件中添加以下内容: ``` sentinel monitor mymaster <master-ip> <master-port> <quorum> sentinel down-after-milliseconds mymaster <timeout> sentinel failover-timeout mymaster <timeout> sentinel parallel-syncs mymaster <num-syncs> ``` 替换 `<master-ip>` 和 `<master-port>` 分别为Redis实例的IP地址和端口号。 `<quorum>` 是用于决定故障切换的最小投票数的值。 `<timeout>` 是在Redis哨兵认为Redis实例已离线之前等待的毫秒数。 `<num-syncs>` 是在故障切换期间同步的从Redis实例数量。 8. 启动Redis哨兵服务。可以使用以下命令启动Redis哨兵: ``` redis-sentinel /path/to/sentinel.conf ``` 或者,您也可以将上述命令添加到启动脚本中,以在系统启动时自动启动Redis哨兵。 9. 验证Redis主从复制和哨兵是否成功运行。使用以下命令检查哨兵的状态: ``` redis-cli -p <sentinel-port> sentinel master mymaster ``` `<sentinel-port>` 是Redis哨兵的端口号。 如果一切正常,您将看到有关Redis实例和从Redis实例的信息。 以上是Redis主从复制和哨兵模式的安装步骤。希望对您有所帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值