redis主从同步

redis主从同步

前言

  • redis主从同步redis

    img

  • 原理数据库

    1. 从服务端向主服务器发送SYNC命令
    2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,建立一个 RDB 文件,并使用缓冲区记录接下来执行的全部写命令。
    3. 当主服务器执行完BGSAVE命令时,它会向从服务器发送 RDB 文件,而从服务器则会接收并载入这个文件。
    4. 主服务器将缓冲区储存的全部写命令发送给从服务器执行。
  • 1 在开启主从复制的时候,使用的是RDB方式的,同步主从数据的
    二、同步开始以后,经过主库命令传播的方式,主动的复制方式实现
    三、2.8之后实现PSYNC的机制,实现断线重连vim

环境准备

  • 前言:
    • 这里演示的是一主俩从
    • redis数据库支持多实例
  1. 主redis配置信息服务器

    vim redis-6379.conf测试

    port 6379        
    daemonize yes          
    pidfile /data/6379/redis.pid
    loglevel notice      
    logfile "/data/6379/redis.log"
    dir /data/6379           
    protected-mode yes 
    dbfilename  dbmp.rdb
    
    save 900 1
    save 300 10 
    save 60 10000
  2. 俩从配置信息, redis-6380.conf 和redis-6381.conf 信息同样,除了port不同code

    vim redis-6380.confserver

    port 6380        
    daemonize yes          
    pidfile /data/6380/redis.pid
    loglevel notice      
    logfile "/data/6380/redis.log"
    dir /data/6380           
    protected-mode yes 
    dbfilename  dbmp.rdb
    save 900 1
    save 300 10 
    save 60 10000
    slaveof  127.0.0.1 6379
  3. 启动三个数据库,blog

    redis-server /data/6380/redis.conf
    redis-server /data/6381/redis.conf
    redis-server /data/6382/redis.conf
  4. 启动三个数据库的实例,查看主从同步关系进程

    redis-cli -p 6379  info replication 
    redis-cli -p 6380  info replication 
    redis-cli -p 6381  info replication
  5. 测试写入数据,主库写入数据,检查从库数据get

    主
    127.0.0.1:6379> set name chaoge
    
    
    从
    127.0.0.1:6381>get name
  6. 模拟主库宕机,而后手动进行主从复制故障切换

    # 查看主库进程
    ps -ef |grep redis
    杀死主库进程
    kill -p 主库进程号
  7. 检查从库信息

    redis-cli -p 6380  info replication 
    redis-cli -p 6381  info replication
  8. 关闭6380从库身份

    127.0.0.1:6380>slaveof no one
  9. 给6381新的主人身份

    127.0.0.1:6381> SLAVEOF no one
    127.0.0.1:6381> SLAVEOF 127.0.0.1 6381
  10. 检查6380和6381的主从信息

  11. 还得修改配置文件,永久生效还得修改配置文件,永久生效还得修改配置文件,永久生效

相关文章
相关标签/搜索