Redis + Keepalived主从集群的搭建及故障转移

本文详细介绍了如何配置Redis主从集群,并结合Keepalived实现故障转移。在正常情况下,Master提供服务,Slave备用;当Master故障,Slave接管并停止主从复制;Master恢复后,重新成为Master,Slave恢复为Slave。搭建过程中需要注意开启本地化策略,防止数据丢失。此外,文章还提供了各个阶段所需脚本的创建和配置。
摘要由CSDN通过智能技术生成

Redis + Keepalived主从集群的搭建及故障转移

设计思路:

  • 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;
  • 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;
  • 当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Master同步数据完成之后,恢复Slave身份。
  • 然后依次循环。

注意事项:

    需要在Master与Slave上都开启本地化策略,否则在互相自动切换的过程中,未开启本地化的一方会将另一方的数据清空,造成数据完全丢失。

环境准备

集群可以是单台机器的不同端口,也可以是多台机器,通常实际应用是,多台机器。假设目前已经安装好了2台机器,IP和端口分别是

主Redis服务器IP:192.168.1.148
主Redis服务器端口号:6379
从Redis服务器IP:192.168.1.158
从Redis服务器端口号:6379

设定一个虚拟IP

192.168.1.200

进入root用户

xiaoyao@xiaoyao-virtual-machine:~$ su
密码: 
root@xiaoyao-virtual-machine:/home/xiaoyao# 

主从两个机器上分别安装Keepalived

root@xiaoyao-virtual-machine:/home/xiaoyao# apt-get install keepalived

主从服务器分别修改hosts文件

root@xiaoyao-virtual-machine:/home/xiaoyao# vim /etc/hosts
在文件末尾添加
192.168.1.148 redis148
192.168.1.158 redis158

主服务器创建配置文件

root@xiaoyao-virtual-machine:/home/xiaoyao# vim /etc/keepalived/keepalived.conf

配置内容:

! Configuration File for keepalived
global_defs {
    router_id redis148
}
vrrp_script chk_redis 
{ 
    script "/etc/keepalived/scripts/redis_check.sh 127.0.0.1 6379" 
    interval 2 
    timeout 2
    fall 3
}
vrrp_instance redis {
    state MASTER # master set to SLAVE also
    interface eth0  
    virtual_router_id 50 
    priority  150       
    nopreempt # no seize,must add
    advert_int 1
    authentication {   #all node must same
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {  
        192.168.1.200/24
    }
    track_script { 
        chk_redis 
    } 
    notify_master "/etc/keepalived/scripts/redis_master.sh 127.0.0.1 192.168.1.158 6379"
    notify_backup "/etc/keepalived/scripts/redis_backup.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值