溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis數據丟失怎么辦

發布時間:2021-08-12 12:47:14 來源:億速云 閱讀:362 作者:chen 欄目:編程語言

這篇文章主要介紹“redis數據丟失怎么辦”,在日常操作中,相信很多人在redis數據丟失怎么辦問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”redis數據丟失怎么辦”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. 兩種數據丟失的情況

主備切換的過程,可能導致數據丟失;

1.1. 異步復制導致的數據丟

redis數據丟失怎么辦

因為master -> slave的復制是異步的,所以可能有部分數據還沒復制到slave,master就宕機了,此時這些部分數據就丟失了

1.2 腦裂導致的數據丟失

redis數據丟失怎么辦

腦裂就是說,某個maser 所在機器突然脫離了正常的網絡,跟其他slave機器不能連接,但是實際上master還運行著,此時哨兵可能就會認為master 宕機了,然后開啟選舉,將其他slave切換成了master,這個時候,集群里面就會有2個master,也就是所謂的腦裂,此時雖然某個slave被切換成了master,但是可能client還沒來得及切換到新的master,還繼續寫向舊master的數據可能也丟失了,因此master再次恢復的時候,會被作為一個slave掛到新的master 上去,自己的數據將會清空,重新從新的master 復制數據

2. 解決異步復制和腦裂數據導致的數據丟失

   # redis.conf 配置
  Min-slaves-to-write 1
  Min-slaves-max-lag 10

上面這兩個配置可以減少異步復制和腦裂導致的數據丟失

###2.1 減少異步復制的數據丟失

有了min-slaves-max-lag這個配置,可以確保說,一旦slave復制數據和ack延遲太長,就認為可能master 宕機后損失的數據太多了,那么就拒絕寫請求,這樣可以吧master宕機時由于部分數據丟失。

2.2 減少腦裂的數據丟失

如果一個master出現了腦裂,跟其他slave丟了連接,那么上面這兩個配置可以去確保說,如果不能繼續給指定數量的slave發送數據,而且slave超過10秒沒有給自己ack消息,那么就直接拒絕客戶端的寫請求,這樣腦裂活的舊master就不會接受client的新數據,也就避免了數據丟失,上面配置確保了,如果跟任何一個slave丟了連接,在10秒后發現沒有slave給自己ack,那么就拒絕新的寫請求,因此腦裂場景下,最多丟失10秒的數據。

到此,關于“redis數據丟失怎么辦”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女