redis實現主從複製和高可用(主從切換)

  1. 主從Redis配置

     Redis服務器具體配置redis

    127.0.0.1 :6379(主)shell

    127.0.0.1 :6380(從)服務器

    127.0.0.1 :6381(從)spa


  2. 主從複製主要經歷四個階段: 


    第一階段:slave與master創建鏈接 
    第二階段:slave向master發起同步請求
    第三階段:slave接受master發來的dump.rdb數據 
    第四階段:slave載入dumo.rdb文件 code


  3. 配置

          1.首先要有3個redis實例,安裝1個redis,複製2個redis(redis-master ,redis-slave1,redis-slave2)orm

            2.分別配置redis.conf  不一樣的port 不一樣的pid 不一樣的redis文件夾配置master的redis.conf server

  redis-mater 配置默認不變ip

  redis-slave1redis.conf配置:                           同步

pidfile /var/run/redis1.pid #改變pid的文件名
port 6380                   #改變port端口號
dir /usr/local/redis1       #改變路徑
slaveof 127.0.0.1 6379      #綁定主的ip和端口

   redis-slave2的redis.conf配置:it

pidfile /var/run/redis2.pid #改變pid的文件名
port 6381                   #改變port端口號
dir /usr/local/redis2       #改變路徑
slaveof 127.0.0.1 6379      #綁定主的ip和端口

  配置完成後就開啓這三個redis :分別跳到三個Redis實例中,執行對應命令

$:src/redis-server redis.conf

                       

可是當主從的主,發生宕機時,數據確定就斷了,致使數據不能寫入,reids的做者也想到了這一點,因此在redis2.6以上中就有了reids的監控軟件sentinel(哨兵),sentinel會監控redis的主從是否存在,若是監控到主斷掉了,那麼就把從提高到主


配置redis的sentinel

   建立一個實例 redis-sentinel ,  打開 sentinel.conf配置以下 

port 26379
#master
sentinel monitor master1 127.0.0.1 6379 1  #填寫master的ip port 
sentinel down-after-milliseconds master1 3000
sentinel failover-timeout master1 900000
sentinel can-failover master1 yes
sentinel parallel-syncs master1 2

   啓動哨兵: 

$: src/redis-sentinel  sentinel.conf

    通常一個master最好配置兩個sentinel才能作故障轉移    

相關文章
相關標籤/搜索