redis源碼有必要讀嗎 redis讀多線程會(huì)出現(xiàn)臟數(shù)據(jù)嗎?
redis讀多線程會(huì)出現(xiàn)臟數(shù)據(jù)嗎?是的,我們單線程,運(yùn)行兩個(gè)50000,將輸出100000。現(xiàn)在兩個(gè)并發(fā)線程同時(shí)運(yùn)行。并發(fā)導(dǎo)致的數(shù)據(jù)結(jié)果往往不是我們想要的。那么如何解決這個(gè)問題呢?Redis已經(jīng)為我們
redis讀多線程會(huì)出現(xiàn)臟數(shù)據(jù)嗎?
是的,我們單線程,運(yùn)行兩個(gè)50000,將輸出100000。現(xiàn)在兩個(gè)并發(fā)線程同時(shí)運(yùn)行。并發(fā)導(dǎo)致的數(shù)據(jù)結(jié)果往往不是我們想要的。那么如何解決這個(gè)問題呢?Redis已經(jīng)為我們準(zhǔn)備好了!如您所見,我的redishelper中的一個(gè)方法是public IDisposable setnx(字符串鍵)。您還可以看到他的返回是IDisposable的,這證明我們需要手動(dòng)釋放資源。方法中的Acquirelock是鍵。這就像要求在redis上加一把鎖。鎖定的資源只能由單個(gè)線程訪問,不能由兩個(gè)線程同時(shí)獲取或設(shè)置。這兩條線必須交替。當(dāng)然,這里的交替并不意味著你一次,或者你多次,或者我一次。讓我們看看密碼。
Redis服務(wù)支持5000萬(wàn)的QPS,有什么好的思路?
如果有面試問你這個(gè)問題,工資應(yīng)該是20萬(wàn)年,其他選擇分紅應(yīng)該支付。這個(gè)想法不是堆機(jī)器就是堆機(jī)器。