我們設置節點A為主服務器,關閉持久化,節點B和C從節點A復制數據。
這時出現了一個崩潰,但Redis具有自動重啟系統,重啟了進程,因為關閉了持久化,節點重啟后只有一個空的數據集。
節點B和C從節點A進行復制,現在節點A是空的,所以節點B和C上的復制數據也會被刪除。
當在高可用系統中使用Redis Sentinel,關閉了主服務器的持久化,并且允許自動重啟,這種情況是很危險的。比如主服務器可能在很短的時間就完成了重啟,以至于Sentinel都無法檢測到這次失敗,那么上面說的這種失敗的情況就發生了。
如果數據比較重要,并且在使用主從復制時關閉了主服務器持久化功能的場景中,都應該禁止實例自動重啟。
且允許自動重啟,這種情況是很危險的。比如主服務器可能在很短的時間就完成了重啟,以至于Sentinel都無法檢測到這次失敗,那么上面說的這種失敗的情況就發生了。
如果數據比較重要,并且在使用主從復制時關閉了主服務器持久化功能的場景中,都應該禁止實例自動重啟。