redis主備手動failover測試
阿新 • • 發佈:2018-12-25
最近在測試redis的ha,在網上搜索了一下,對於keepalived+redis的主備,主要有以下兩個連結:
在這兩個blog裡面,有2處矛盾和疑問:
需要在Master與Slave上都開啟本地化策略,否則在互相自動切換的過程中,未開啟本地化的一方會將另一方的資料清空,造成資料完全丟失
主例項重起後不能通過slaveof方式從從例項同步資料.
實際搭環境測試了一下.
版本redis-2.6.7
首先redis1起為master模式,設定passwd.無持久化,
Redis2起為slvae模式,設定passwd和masterauth.開啟aof持久化.
插入一些資料.測試主從同步ok,(注
模擬主例項down,kill redis1
將redis2通過slaveof no one命令提升為master,寫入新資料.
重起redis1,此時裡面的資料就是初次同步時的快照資料.
使用slaveof redis2命令從redis2同步資料.
情形和B文一樣,info顯示master_link_status:down
開始也以為是持久化策略的問題,嘗試了不同的持久化策略未果,後來才想到是因為redis1沒有配置masterauth導致連線redis2失敗的原因.修改redis1配置後再試,果然就ok了.
同步完成後,重新設定redis2
證明完全可以通過同步的方式恢復主例項.實現failover.