亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

江门市| 邻水| 遂溪县| 清徐县| 张家川| 祁东县| 峨眉山市| 大姚县| 昌宁县| 英德市| 武平县| 西藏| 五大连池市| 新民市| 韶山市| 策勒县| 鹤岗市| 鹤山市| 大理市| 敦化市| 临夏市| 西城区| 鹿泉市| 肃南| 浏阳市| 日照市| 长乐市| 克什克腾旗| 南充市| 新沂市| 张家川| 青田县| 义乌市| 阜城县| 五华县| 桦甸市| 大方县| 青阳县| 合作市| 锡林郭勒盟| 宁强县|