1. 程式人生 > >redis主備手動failover測試

redis主備手動failover測試

最近在測試redisha,在網上搜索了一下,對於keepalived+redis的主備,主要有以下兩個連結:

在這兩個blog裡面,2處矛盾和疑問:

需要在MasterSlave上都開啟本地化策略,否則在互相自動切換的過程中,未開啟本地化的一方會將另一方的資料清空,造成資料完全丟失

主例項重起後不能通過slaveof方式從從例項同步資料.

實際搭環境測試了一下.

版本redis-2.6.7

首先redis1起為master模式,設定passwd.無持久化,

Redis2起為slvae模式,設定passwdmasterauth.開啟aof持久化.

插入一些資料.測試主從同步ok,(

,slave在初次同步時master會進行一次快照)

模擬主例項down,kill redis1

redis2通過slaveof no one命令提升為master,寫入新資料.

重起redis1,此時裡面的資料就是初次同步時的快照資料.

使用slaveof redis2命令從redis2同步資料.

情形和B文一樣,info顯示master_link_status:down

開始也以為是持久化策略的問題,嘗試了不同的持久化策略未果,後來才想到是因為redis1沒有配置masterauth導致連線redis2失敗的原因.修改redis1配置後再試,果然就ok.

同步完成後,重新設定redis2

slave,恢復初始主從狀態.檢查資料正常.

證明完全可以通過同步的方式恢復主例項.實現failover.