zoukankan      html  css  js  c++  java
  • redis主从同步

    原理:
    1. 从服务器向主服务器发送 SYNC 命令。
    2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令。
    3. 当主服务器执行完 BGSAVE 命令时,它会向从服务器发送 RDB 文件,而从服务器则会接收并载入这个文件。
    4. 主服务器将缓冲区储存的所有写命令发送给从服务器执行。


    -------------
    1、在开启主从复制的时候,使用的是RDB方式的,同步主从数据的
    2、同步开始之后,通过主库命令传播的方式,主动的复制方式实现
    3、2.8以后实现PSYNC的机制,实现断线重连

    环境准备,准备3个redis数据库实例,准备3个redis配置文件即可

    10.0.0.2110.0.0.2210.0.0.23

     分别在三台机器上创建配置文件

    主服务配置

    [root@10.0.0.21 ~]# mkdir /data/6379
    [root@10.0.0.21 ~]# cd /data/6379/
    [root@10.0.0.21  6379]# touch redis.conf

    写入以下配置

    port 6379
    daemonize yes
    pidfile /data/6379/redis.pid
    loglevel notice
    logfile "/data/6379/redis.log"
    dbfilename dump.rdb
    dir /data/6379

    从库配置(10.0.0.22,10.0.0.23)配置相同

    [root@10.0.0.22 ~]# mkdir /data/6379
    [root@10.0.0.22 ~]# cd /data/6379/
    [root@10.0.0.22  6379]# touch redis.conf

    配置如下

    port 6379
    daemonize yes
    pidfile /data/6379/redis.pid
    loglevel notice
    logfile "/data/6379/redis.log"
    dbfilename dump.rdb
    dir /data/6379
    SLAVEOF 10.0.0.21  6379

    启动三个redis实例

    [root@10.0.0.21 ~]# redis-server /data/6379/redis.conf

    检查主从状态

    从库:
    
    127.0.0.1:6379> info replication
    127.0.0.1:6379> info replication
    
    主库:
    127.0.0.1:6379 > info replication

    测试写入数据,主库写入数据,检查从库数据

    127.0.0.1:6379> set name chaoge
    
    
    从
    127.0.0.1:6379>get name 

    手动进行主从复制故障切换

    复制代码
    手动进行主从复制故障切换
    #关闭主库6379
    [root@10.0.0.21 ~]# redis-cli -p 
    127.0.0.1:6379> shutdown

    检查从库主从信息,此时master_link_status:down 

    [root@10.0.0.22 ~]# redis-cli -p 6379
    127.0.0.1:6379> info replication
    
    [root@10.0.0.23 ~]# redis-cli -p 6379
    127.0.0.1:6379> info replication

    既然主库挂了,我想要在从库之间选一个新的主库

    1.关闭10.0.0.22 : 6379的从库身份
    
    redis-cli -p 6379
    info replication
    slaveof no one
    2.将10.0.0.23:6379设为10.0.0.22:6379的从库
    
    [root@10.0.0.23 ~]# redis-cli -p 6379
    127.0.0.1:6382> SLAVEOF no one
    127.0.0.1:6382> SLAVEOF 10.0.0.22 6379
  • 相关阅读:
    SQL Azure (17) SQL Azure V12
    Microsoft Azure News(5) Azure新DV2系列虚拟机上线
    Azure Redis Cache (3) 在Windows 环境下使用Redis Benchmark
    Azure PowerShell (11) 使用自定义虚拟机镜像模板,创建Azure虚拟机并绑定公网IP(VIP)和内网IP(DIP)
    Windows Azure Virtual Machine (31) 迁移Azure虚拟机
    Windows Azure Web Site (16) Azure Web Site HTTPS
    Azure China (12) 域名备案问题
    一分钟快速入门openstack
    管理员必备的Linux系统监控工具
    Keepalived+Nginx实现高可用和双主节点负载均衡
  • 原文地址:https://www.cnblogs.com/wanglan/p/10507985.html
Copyright © 2011-2022 走看看