redis實現主從復制和高可用(主從切換)
-
主從Redis配置
Redis服務器具體配置
127.0.0.1 :6379(主)
127.0.0.1 :6380(從)
127.0.0.1 :6381(從)
-
主從復制主要經歷四個階段:
第一階段:slave與master建立連接
第二階段:slave向master發起同步請求
第三階段:slave接受master發來的dump.rdb數據
第四階段:slave載入dumo.rdb文件
-
配置
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-slave1的redis.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
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!