中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Redis Cluster到底會不會丟數據

發布時間:2021-09-24 10:28:00 來源:億速云 閱讀:166 作者:柒染 欄目:關系型數據庫

這篇文章給大家介紹Redis Cluster到底會不會丟數據,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Redis Cluster 不保證強一致性,在一些特殊場景,客戶端即使收到了寫入確認,還是可能丟數據的。

場景1:異步復制

Redis Cluster到底會不會丟數據

  • client 寫入 master B

  • master B 回復 OK

  • master B 同步至 slave B1 B2 B3

B 沒有等待 B1 B2 B3 的確認就回復了 client,如果在 slave 同步完成之前,master 宕機了,其中一個 slave 會被選為 master,這時之前 client 寫入的數據就丟了。

wait 命令可以增強這種場景的數據安全性。

wait 會阻塞當前 client 直到之前的寫操作被指定數量的 slave 同步成功。

wait 可以提高數據的安全性,但并不保證強一致性。

因為即使使用了這種同步復制方式,也存在特殊情況:一個沒有完成同步的 slave 被選舉為了 master。

場景2:網絡分區

6個節點 A, B, C, A1, B1, C1,3個master,3個slave,還有一個client,Z1

Redis Cluster到底會不會丟數據Redis Cluster到底會不會丟數據

發生網絡分區之后,形成了2個區,A, C, A1, B1, C1B Z1

Redis Cluster到底會不會丟數據Redis Cluster到底會不會丟數據

這時 Z1 還是可以向 B 寫入的,如果短時間內分區就恢復了,那就沒問題,整個集群繼續正常工作,但如果時間一長,B1 就會成為所在分區的 master,Z1 寫入 B 的數據就丟了。

maximum window(最大時間窗口) 可以減少數據損失,可以控制 Z1 向 B 寫入的總數:

過去一定時間后,分區的多數邊就會進行選舉,slave 成為 master,這時分區少數邊的 master 就會拒絕接收寫請求。

這個時間量是非常重要的,稱為節點過期時間

一個 master 在達到過期時間后,就被認為是故障的,進入 error 狀態,停止接收寫請求,可以被 slave 取代。


Redis Cluster 不保證強一致性,存在丟失數據的場景:

  • 異步復制

在 master 寫成功,但 slave 同步完成之前,master 宕機了,slave 變為 master,數據丟失。

wait 命令可以給為同步復制,但也無法完全保證數據不丟,而且影響性能。

  • 網絡分區

分區后一個 master 繼續接收寫請求,分區恢復后這個 master 可能會變為 slave,那么之前寫入的數據就丟了。

可以設置節點過期時間,減少 master 在分區期間接收的寫入數量,降低數據丟失的損失。

關于Redis Cluster到底會不會丟數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

宝坻区| 西充县| 蓬安县| 睢宁县| 周口市| 古浪县| 高要市| 西充县| 巴里| 陕西省| 甘孜县| 什邡市| 和龙市| 边坝县| 固阳县| 双流县| 永川市| 和田市| 江华| 晋中市| 大石桥市| 兴化市| 黎川县| 西丰县| 海林市| 辉南县| 揭阳市| 虞城县| 台州市| 和硕县| 安阳县| 沙河市| 千阳县| 响水县| 正定县| 綦江县| 江油市| 安阳市| 弥渡县| 大荔县| 深泽县|