真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

RedisCluster到底會(huì)不會(huì)丟數(shù)據(jù)

這篇文章給大家介紹redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)公司主營(yíng)鄂托克網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),鄂托克h5微信小程序開(kāi)發(fā)搭建,鄂托克網(wǎng)站營(yíng)銷推廣歡迎鄂托克等地區(qū)企業(yè)咨詢

Redis Cluster 不保證強(qiáng)一致性,在一些特殊場(chǎng)景,客戶端即使收到了寫(xiě)入確認(rèn),還是可能丟數(shù)據(jù)的。

場(chǎng)景1:異步復(fù)制

Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)

  • client 寫(xiě)入 master B

  • master B 回復(fù) OK

  • master B 同步至 slave B1 B2 B3

B 沒(méi)有等待 B1 B2 B3 的確認(rèn)就回復(fù)了 client,如果在 slave 同步完成之前,master 宕機(jī)了,其中一個(gè) slave 會(huì)被選為 master,這時(shí)之前 client 寫(xiě)入的數(shù)據(jù)就丟了。

wait 命令可以增強(qiáng)這種場(chǎng)景的數(shù)據(jù)安全性。

wait 會(huì)阻塞當(dāng)前 client 直到之前的寫(xiě)操作被指定數(shù)量的 slave 同步成功。

wait 可以提高數(shù)據(jù)的安全性,但并不保證強(qiáng)一致性。

因?yàn)榧词故褂昧诉@種同步復(fù)制方式,也存在特殊情況:一個(gè)沒(méi)有完成同步的 slave 被選舉為了 master。

場(chǎng)景2:網(wǎng)絡(luò)分區(qū)

6個(gè)節(jié)點(diǎn) A, B, C, A1, B1, C1,3個(gè)master,3個(gè)slave,還有一個(gè)client,Z1。

Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)

發(fā)生網(wǎng)絡(luò)分區(qū)之后,形成了2個(gè)區(qū),A, C, A1, B1, C1B Z1。

Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)

這時(shí) Z1 還是可以向 B 寫(xiě)入的,如果短時(shí)間內(nèi)分區(qū)就恢復(fù)了,那就沒(méi)問(wèn)題,整個(gè)集群繼續(xù)正常工作,但如果時(shí)間一長(zhǎng),B1 就會(huì)成為所在分區(qū)的 master,Z1 寫(xiě)入 B 的數(shù)據(jù)就丟了。

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

過(guò)去一定時(shí)間后,分區(qū)的多數(shù)邊就會(huì)進(jìn)行選舉,slave 成為 master,這時(shí)分區(qū)少數(shù)邊的 master 就會(huì)拒絕接收寫(xiě)請(qǐng)求。

這個(gè)時(shí)間量是非常重要的,稱為節(jié)點(diǎn)過(guò)期時(shí)間。

一個(gè) master 在達(dá)到過(guò)期時(shí)間后,就被認(rèn)為是故障的,進(jìn)入 error 狀態(tài),停止接收寫(xiě)請(qǐng)求,可以被 slave 取代。

Redis Cluster 不保證強(qiáng)一致性,存在丟失數(shù)據(jù)的場(chǎng)景:

  • 異步復(fù)制

在 master 寫(xiě)成功,但 slave 同步完成之前,master 宕機(jī)了,slave 變?yōu)?master,數(shù)據(jù)丟失。

wait 命令可以給為同步復(fù)制,但也無(wú)法完全保證數(shù)據(jù)不丟,而且影響性能。

  • 網(wǎng)絡(luò)分區(qū)

分區(qū)后一個(gè) master 繼續(xù)接收寫(xiě)請(qǐng)求,分區(qū)恢復(fù)后這個(gè) master 可能會(huì)變?yōu)?slave,那么之前寫(xiě)入的數(shù)據(jù)就丟了。

可以設(shè)置節(jié)點(diǎn)過(guò)期時(shí)間,減少 master 在分區(qū)期間接收的寫(xiě)入數(shù)量,降低數(shù)據(jù)丟失的損失。

關(guān)于Redis Cluster到底會(huì)不會(huì)丟數(shù)據(jù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)頁(yè)標(biāo)題:RedisCluster到底會(huì)不會(huì)丟數(shù)據(jù)
本文鏈接:http://weahome.cn/article/gsgjcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部