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

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

使用redis要注意什么-創(chuàng)新互聯(lián)

今天小編給大家分享的是使用redis要注意什么,相信很多人都不太了解,為了讓大家更加了解使用redis,所以給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

成都創(chuàng)新互聯(lián)公司專注于溫嶺網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供溫嶺營(yíng)銷型網(wǎng)站建設(shè),溫嶺網(wǎng)站制作、溫嶺網(wǎng)頁(yè)設(shè)計(jì)、溫嶺網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造溫嶺網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供溫嶺網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

redis和數(shù)據(jù)庫(kù)雙寫一致性問題

分析:一致性問題是分布式常見問題,還可以再分為最終一致性和強(qiáng)一致性。數(shù)據(jù)庫(kù)和緩存雙寫,就必然會(huì)存在不一致的問題。答這個(gè)問題,先明白一個(gè)前提。就是如果對(duì)數(shù)據(jù)有強(qiáng)一致性要求,不能放緩存。我們所做的一切,只能保證最終一致性。另外,我們所做的方案其實(shí)從根本上來說,只能說降低不一致發(fā)生的概率,無法完全避免。因此,有強(qiáng)一致性要求的數(shù)據(jù),不能放緩存。 ----------

分析:一致性問題是分布式常見問題,還可以再分為最終一致性和強(qiáng)一致性。數(shù)據(jù)庫(kù)和緩存雙寫,就必然會(huì)存在不一致的問題。答這個(gè)問題,先明白一個(gè)前提。就是如果對(duì)數(shù)據(jù)有強(qiáng)一致性要求,不能放緩存。我們所做的一切,只能保證最終一致性。另外,我們所做的方案其實(shí)從根本上來說,只能說降低不一致發(fā)生的概率,無法完全避免。因此,有強(qiáng)一致性要求的數(shù)據(jù),不能放緩存。

首先,采取正確更新策略,先更新數(shù)據(jù)庫(kù),再刪緩存。其次,因?yàn)榭赡艽嬖趧h除緩存失敗的問題,提供一個(gè)補(bǔ)償措施即可,例如利用消息隊(duì)列。

如何應(yīng)對(duì)緩存穿透和緩存雪崩問題

分析:這兩個(gè)問題,說句實(shí)在話,一般中小型傳統(tǒng)軟件企業(yè),很難碰到這個(gè)問題。如果有大并發(fā)的項(xiàng)目,流量有幾百萬左右。這兩個(gè)問題一定要深刻考慮。

回答:如下所示

緩存穿透,即黑客故意去請(qǐng)求緩存中不存在的數(shù)據(jù),導(dǎo)致所有的請(qǐng)求都懟到數(shù)據(jù)庫(kù)上,從而數(shù)據(jù)庫(kù)連接異常。

解決方案:

(一)利用互斥鎖,緩存失效的時(shí)候,先去獲得鎖,得到鎖了,再去請(qǐng)求數(shù)據(jù)庫(kù)。沒得到鎖,則休眠一段時(shí)間重試

(二)采用異步更新策略,無論key是否取到值,都直接返回。value值中維護(hù)一個(gè)緩存失效時(shí)間,緩存如果過期,異步起一個(gè)線程去讀數(shù)據(jù)庫(kù),更新緩存。需要做緩存預(yù)熱(項(xiàng)目啟動(dòng)前,先加載緩存)操作。

(三)提供一個(gè)能迅速判斷請(qǐng)求是否有效的攔截機(jī)制,比如,利用布隆過濾器,內(nèi)部維護(hù)一系列合法有效的key。迅速判斷出,請(qǐng)求所攜帶的Key是否合法有效。如果不合法,則直接返回。

緩存雪崩,即緩存同一時(shí)間大面積的失效,這個(gè)時(shí)候又來了一波請(qǐng)求,結(jié)果請(qǐng)求都懟到數(shù)據(jù)庫(kù)上,從而導(dǎo)致數(shù)據(jù)庫(kù)連接異常。

解決方案:

(一)給緩存的失效時(shí)間,加上一個(gè)隨機(jī)值,避免集體失效。

(二)使用互斥鎖,但是該方案吞吐量明顯下降了。

(三)雙緩存。我們有兩個(gè)緩存,緩存A和緩存B。緩存A的失效時(shí)間為20分鐘,緩存B不設(shè)失效時(shí)間。自己做緩存預(yù)熱操作。然后細(xì)分以下幾個(gè)小點(diǎn)


I 從緩存A讀數(shù)據(jù)庫(kù),有則直接返回

II A沒有數(shù)據(jù),直接從B讀數(shù)據(jù),直接返回,并且異步啟動(dòng)一個(gè)更新線程。

III 更新線程同時(shí)更新緩存A和緩存B。

如何解決redis的并發(fā)競(jìng)爭(zhēng)key問題

分析:這個(gè)問題大致就是,同時(shí)有多個(gè)子系統(tǒng)去set一個(gè)key。這個(gè)時(shí)候要注意什么呢?大家思考過么。需要說明一下,博主提前百度了一下,發(fā)現(xiàn)答案基本都是推薦用redis事務(wù)機(jī)制。博主不推薦使用redis的事務(wù)機(jī)制。因?yàn)槲覀兊纳a(chǎn)環(huán)境,基本都是redis集群環(huán)境,做了數(shù)據(jù)分片操作。你一個(gè)事務(wù)中有涉及到多個(gè)key操作的時(shí)候,這多個(gè)key不一定都存儲(chǔ)在同一個(gè)redis-server上。因此,redis的事務(wù)機(jī)制,十分雞肋。

回答:如下所示

(1)如果對(duì)這個(gè)key操作,不要求順序

這種情況下,準(zhǔn)備一個(gè)分布式鎖,大家去搶鎖,搶到鎖就做set操作即可,比較簡(jiǎn)單。

(2)如果對(duì)這個(gè)key操作,要求順序

假設(shè)有一個(gè)key1,系統(tǒng)A需要將key1設(shè)置為valueA,系統(tǒng)B需要將key1設(shè)置為valueB,系統(tǒng)C需要將key1設(shè)置為valueC.

期望按照key1的value值按照 valueA–>valueB–>valueC的順序變化。這種時(shí)候我們?cè)跀?shù)據(jù)寫入數(shù)據(jù)庫(kù)的時(shí)候,需要保存一個(gè)時(shí)間戳。假設(shè)時(shí)間戳如下

系統(tǒng)A key 1 {valueA  3:00}
系統(tǒng)B key 1 {valueB  3:05}
系統(tǒng)C key 1 {valueC  3:10}

那么,假設(shè)這會(huì)系統(tǒng)B先搶到鎖,將key1設(shè)置為{valueB 3:05}。接下來系統(tǒng)A搶到鎖,發(fā)現(xiàn)自己的valueA的時(shí)間戳早于緩存中的時(shí)間戳,那就不做set操作了。以此類推。

以上就是使用redis要注意什么的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文題目:使用redis要注意什么-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/dsophj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部