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

Redis + Keepalived主从集群的搭建及故障转移设计思路:当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Maste
摘要由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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Redis和MySQL主从复制的架构中,读写过程通常包括以下步骤: 1. 客户端连接Redis主服务器。客户端通过TCP/IP协议连接Redis主服务器,并进行身份验证。 2. 客户端发送Redis命令。客户端向Redis主服务器发送命令,包括读取和写入操作。 3. Redis主服务器执行命令。Redis主服务器根据接收到的命令执行相应的操作,包括读取和写入数据。 4. Redis主服务器将写入操作同步到MySQL主服务器。Redis主服务器将写入操作同步到MySQL主服务器上,保证数据的持久化。 5. MySQL主服务器将写入操作同步到MySQL从服务器。MySQL主服务器将写入操作同步到MySQL从服务器上,保证数据的复制和备份。 6. 客户端连接Redis从服务器或MySQL从服务器。客户端可以选择连接Redis从服务器或MySQL从服务器进行读取操作。如果连接Redis从服务器,则可以充分利用Redis从服务器的读取性能;如果连接MySQL从服务器,则可以保证数据的一致性和可靠性。 7. 客户端发送读取命令。客户端向Redis从服务器或MySQL从服务器发送读取命令。 8. Redis从服务器或MySQL从服务器执行读取命令。Redis从服务器或MySQL从服务器根据接收到的读取命令执行相应的操作,包括读取数据并返回结果。 9. Redis从服务器或MySQL从服务器将结果返回给客户端。Redis从服务器或MySQL从服务器将执行结果返回给客户端,客户端进行相应的处理。 在Redis和MySQL主从复制的架构中,主服务器负责写操作和数据同步,从服务器负责读操作和数据复制。这样可以充分利用Redis和MySQL各自的优势,同保证数据的一致性和可靠性。但是需要注意的是,主从复制架构中可能存在数据同步延迟和数据不一致等问题,需要根据实际需求进行相应的优化和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值