redis實現主從復制和高可用(主從切換)

jopen 8年前發布 | 9K 次閱讀 Redis NoSQL數據庫

  1. 主從Redis配置

     Redis服務器具體配置

    127.0.0.1 :6379(主)

    127.0.0.1 :6380(從)

    127.0.0.1 :6381(從)


  2. 主從復制主要經歷四個階段: 


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


  3. 配置

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

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

  redis-mater 配置默認不變

  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配置:

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

    

來自: http://my.oschina.net/manmao/blog/550428

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!