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. 還得修改配置文件,永久生效還得修改配置文件,永久生效還得修改配置文件,永久生效

相關文章
相關標籤/搜索