卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

并發(fā)編程中的一致性 在大數(shù)據(jù)高并發(fā)環(huán)境下應(yīng)該怎么保證庫存或者下單同步?

在大數(shù)據(jù)高并發(fā)環(huán)境下應(yīng)該怎么保證庫存或者下單同步?在互聯(lián)網(wǎng)開發(fā)中,如果在大數(shù)據(jù)、高并發(fā)的環(huán)境下,很多人下單,如何保證庫存的抵扣永遠(yuǎn)正確?將庫存加載到緩存中,如rDB讀寫分離情況下,如何解決緩存和數(shù)據(jù)庫

在大數(shù)據(jù)高并發(fā)環(huán)境下應(yīng)該怎么保證庫存或者下單同步?

在互聯(lián)網(wǎng)開發(fā)中,如果在大數(shù)據(jù)、高并發(fā)的環(huán)境下,很多人下單,如何保證庫存的抵扣永遠(yuǎn)正確?

將庫存加載到緩存中,如r

DB讀寫分離情況下,如何解決緩存和數(shù)據(jù)庫不一致性問題?

說明:連續(xù)寫數(shù)據(jù)庫和緩存,但是在操作過程中,存在并發(fā),數(shù)據(jù)不一致。

通常,高速緩存和數(shù)據(jù)庫按以下順序更新:

l先更新數(shù)據(jù)庫,再更新緩存。

l先刪除緩存,再更新數(shù)據(jù)庫。

l首先更新數(shù)據(jù)庫,然后刪除緩存。

看看這三種的優(yōu)缺點:

請在更新緩存之前更新數(shù)據(jù)庫。

這樣做的問題是,當(dāng)同時有兩個更新數(shù)據(jù)的請求時,如果您不 不要使用分布式鎖,你不會 不能控制最后緩存的值是什么。就是并發(fā)寫的時候有問題。

請在更新數(shù)據(jù)庫之前刪除緩存。

這樣做的問題是,如果客戶端在刪除緩存后讀取數(shù)據(jù),它可能會讀取舊數(shù)據(jù)并將其設(shè)置在緩存中,導(dǎo)致緩存中的數(shù)據(jù)總是舊數(shù)據(jù)。

有兩種解決方案:

我使用 "雙重刪除 ",即刪除或刪除。刪除的最后一步是異步操作,這是為了防止舊值在客戶端讀取時被設(shè)置。

我用隊列。當(dāng)這個鍵不存在時,將它放入隊列中并順序執(zhí)行。你可以 直到數(shù)據(jù)庫更新后才能讀取數(shù)據(jù)。

總的來說比較麻煩。

請在刪除緩存之前更新數(shù)據(jù)庫。

這實際上是一個常見的方案,但許多人不 我不知道。我在這里介紹一下。It 我們稱之為緩存?zhèn)溆媚J剑峭鈬税l(fā)明的。如果首先更新數(shù)據(jù)庫,然后刪除緩存,那么將顯示更新次數(shù)。根據(jù)數(shù)據(jù)庫,以前有瞬時數(shù)據(jù)不是很及時。

同時,如果更新前緩存剛好失效,讀客戶端可能會讀取舊值,然后在寫客戶端刪除后重新設(shè)置舊值,這是非常巧合的。

有兩個前提條件:寫之前緩存無效,同時寫客戶端刪除操作之后舊數(shù)據(jù)放置——也就是讀比寫慢。一些寫操作也會鎖定表。

所以,這很難出現(xiàn),但如果出現(xiàn)了呢?使用雙重刪除?。?!記錄更新期間客戶端是否讀取數(shù)據(jù)庫,如果是,則在更新數(shù)據(jù)庫后執(zhí)行延遲刪除。