日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
的考慮考慮Redis臟讀看看什么才是最佳實(shí)踐(對redis臟讀)

Redis臟讀是一種指當(dāng)多個(gè)事務(wù)同時(shí)從Redis的數(shù)據(jù)庫中讀取數(shù)據(jù)的情況下,某個(gè)事務(wù)讀取到的數(shù)據(jù)是其他事務(wù)提交的,而沒有被提交事務(wù)執(zhí)行修改過的。 Redis臟讀會導(dǎo)致系統(tǒng)數(shù)據(jù)不一致,甚至出現(xiàn)無法預(yù)料的異常。

當(dāng)使用Redis數(shù)據(jù)庫時(shí),我們必須確保Redis臟讀不會帶來問題。最佳實(shí)踐是使用可重復(fù)讀事務(wù)(RR)。RR事務(wù)提供了一種在重復(fù)讀取上保持?jǐn)?shù)據(jù)一致性的機(jī)制,即在進(jìn)行兩次讀取之間,不允許任何更新操作。

但是,當(dāng)執(zhí)行RR事務(wù)時(shí),我們必須小心避免死鎖的發(fā)生。對于任意兩個(gè)事務(wù)A和B,兩個(gè)事務(wù)都不會被阻塞,直到所有樂觀鎖被釋放,所有更新事務(wù)也被提交為止。為了保證避免死鎖發(fā)生,我們可以使用最佳實(shí)踐:在執(zhí)行RR事務(wù)時(shí),維持活鎖,即確保修改需要被寫入到Redis中。

舉個(gè)例子,當(dāng)我們請求Redis內(nèi)的某個(gè)對象存儲的值的時(shí)候,使用活鎖可以確保獲得的值為其他事務(wù)提交的值,而不是其他事務(wù)執(zhí)行的而沒有被提交的修改值。 實(shí)現(xiàn)活鎖的方法相對簡單:使用Redis的SETNX函數(shù)即可,使用SETNX函數(shù)可以將一個(gè)新的唯一的ID寫入到Redis中。

例如:

int lockTimeOutMillis = 15000;
String prefix = "lock:";

// Get a lock:
String lockName = prefix + thekey;
String lockTime = String.valueOf(System.currentTimeMillis() + lockTimeOutMillis);
if (jedisClient.setnx(lockName, lockTime) == 1) {
// lock obtned
// run protected code
// release lock
...
}

當(dāng)同時(shí)訪問Redis數(shù)據(jù)庫時(shí),我們可以使用RR事務(wù)來保持?jǐn)?shù)據(jù)一致性,避免Redis臟讀問題。同時(shí),我們還需要使用活鎖來確保數(shù)據(jù)一致性,保證我們讀取Redis中的值都是最新寫入的,防止Redis臟讀的發(fā)生。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


網(wǎng)站欄目:的考慮考慮Redis臟讀看看什么才是最佳實(shí)踐(對redis臟讀)
本文來源:http://www.5511xx.com/article/dhsesgj.html