更新時間:2022-11-14 來源:黑馬程序員 瀏覽量:
數(shù)據(jù)一致性是指在對一個副本數(shù)據(jù)進行更新的同時,必須確保也能夠更新到其他的副本,否則不同的副本之間的數(shù)據(jù)將不再一致。例如,當你在某銀行已存有5000元,接著又存了1000元,然后跑到另一個地方游山玩水,需要在當?shù)氐你y行把這6000元取出來,但是存錢的銀行并沒有及時將你存錢的信息傳給當?shù)氐你y行,所以當?shù)氐你y行還不知道你已經(jīng)存了1000元進去,當?shù)劂y行的工作人員告訴你賬戶余額只有5000元,這時你的同一賬戶的余額在不同地點就出了不一致的情況。
數(shù)據(jù)的一致性有3種類型,即強一致性、弱一致性以及最終一致性,具體介紹如下。
(1)強一致性是指對數(shù)據(jù)完成更新操作之后,所有客戶端訪問到的數(shù)據(jù)均為更新之后的數(shù)據(jù),這樣可以保證客戶端獲取的是最新數(shù)據(jù),但是若要達到強一致性,將會降低性能。
(2)弱一致性是指當數(shù)據(jù)完成更新操作之后,系統(tǒng)并不保證所有的客戶端訪問到的數(shù)據(jù)都是最新數(shù)據(jù),但是會盡量保證在某個時間(如秒級或分鐘級)內(nèi)讓數(shù)據(jù)達到一致性狀態(tài)。
(3)最終一致性是弱一致性的一種特例,當對數(shù)據(jù)更新完之后,保證沒有后續(xù)更新的前提下,系統(tǒng)最終返回的是上一次更新操作的值。