redis flushdb造成的哨兵漂移

zlingyi發表於2018-02-25
     年前發現一redis資料量過大,資料不大正常,和研發商量使用flushall進行清理。在主節點執行,執行完後發現master漂移到其他節點,然後資料又從其他節點同步過來了。。於是在三臺機器上同時執行flushall,再檢查發現資料已清理完畢,redis叢集狀態正常。
經分析,由於資料量較大,flushall的時間需要將近6s,且是阻塞的,由於哨兵3s連線不上就會重新選舉master節點,導致master漂移。
    處理辦法:1、同時在三臺機器上執行flushall操作
                    2、停止哨兵,在master節點上執行flushall操作,然後再啟動哨兵
                    3、輪流重啟redis,關閉以後需要清理rdb資料。(此操作未執行,也有資料回寫的問題,可能還需要停止哨兵來配合,風險較大)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28686045/viewspace-2151224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章