成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

redis使用中存在的問題及如何避免(二)

wfc_666 / 1721人閱讀

摘要:使用中存在的問題及如何避免一闡述了的阻塞問題及緩存穿透問題,本文將繼續(xù)總結(jié)在使用中的問題及方案。更多的節(jié)點(diǎn)不代表更高的性能,這就是無底洞問題??墒褂寐┩傲钆仆暗确绞竭M(jìn)行限流操作,將流量擋在應(yīng)用上層。

redis使用中存在的問題及如何避免(一)闡述了redis的阻塞問題及緩存穿透問題,本文將繼續(xù)總結(jié)redis在使用中的問題及方案。

無底洞問題
隨著數(shù)據(jù)量和訪問量的增長,需要增加更多的節(jié)點(diǎn)做水平擴(kuò)容,鍵值會(huì)分布到更多的節(jié)點(diǎn)上,若客戶端進(jìn)行批量操作則通常會(huì)從不同的節(jié)點(diǎn)上獲取數(shù)據(jù),相比于單機(jī)批量操作只涉及一次網(wǎng)絡(luò)操作,分布式批量操作會(huì)涉及多次網(wǎng)絡(luò)交互。
隨著節(jié)點(diǎn)數(shù)的增多,客戶端一次批量操作涉及的網(wǎng)絡(luò)交互耗時(shí)也會(huì)不斷增大;網(wǎng)絡(luò)連接數(shù)增多,對(duì)節(jié)點(diǎn)性能也有一定影響。
更多的節(jié)點(diǎn)不代表更高的性能,這就是無底洞問題。

雪崩問題
由于緩存層承載著大量請(qǐng)求,有效的保護(hù)了存儲(chǔ)層,但如果緩存層由于某些原因不能提供服務(wù),所有請(qǐng)求都會(huì)壓到存儲(chǔ)層,存儲(chǔ)層流量暴增,導(dǎo)致存儲(chǔ)層也會(huì)級(jí)聯(lián)宕機(jī)。

保證緩存層服務(wù)高可用性
Redis Sentinel或者Redis Cluster都實(shí)現(xiàn)了高可用

隔離限流降級(jí)
對(duì)重要的資源Redis、Mysql、外部接口調(diào)用都進(jìn)行隔離,機(jī)器、進(jìn)程、線程等層面都可做隔離。
可使用漏桶、令牌桶等方式進(jìn)行限流操作,將流量擋在應(yīng)用上層。
對(duì)出現(xiàn)問題的數(shù)據(jù)或功能做降級(jí)處理,友好的展示給用戶。

提前演練測(cè)試

熱點(diǎn)key重建優(yōu)化
緩存+過期時(shí)間策略即可以加速數(shù)據(jù)讀寫,又保證數(shù)據(jù)的定期更新,若出現(xiàn)如下兩個(gè)問題,可能會(huì)對(duì)應(yīng)用產(chǎn)生致命危害:

當(dāng)前key是一個(gè)熱點(diǎn)key,并發(fā)量非常大

重建緩存不能在短時(shí)間內(nèi)完成,如:復(fù)雜的sql、多次IO、多個(gè)依賴等。
在緩存失效的瞬間,有大量的線程來創(chuàng)建緩存,造成后端負(fù)載加大,甚至導(dǎo)致系統(tǒng)崩潰。
方案:

a.互斥鎖
  只允許有一個(gè)線程去重建數(shù)據(jù),其他線程等待構(gòu)建完緩存,重新從緩存中獲取數(shù)據(jù)。
b.永遠(yuǎn)不過期
  設(shè)置邏輯過期時(shí)間,判斷邏輯時(shí)間和當(dāng)前時(shí)間大小,然后異步去構(gòu)建數(shù)據(jù)覆蓋老數(shù)據(jù)。
  
a方案思路簡(jiǎn)單,能保證一致性;但代碼復(fù)雜度增大,存在死鎖風(fēng)險(xiǎn),存在線程池阻塞風(fēng)險(xiǎn)。
b方案基本可以杜絕熱點(diǎn)key問題;但不保證一致性,邏輯過期時(shí)間增加代碼維護(hù)成本。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61972.html

相關(guān)文章

  • redis使用存在問題如何避免(一)

    摘要:給我們帶來便利的同時(shí),使用過程中會(huì)存在什么問題呢,本文將簡(jiǎn)單加以總結(jié)。避免使用內(nèi)存過大的實(shí)例。如果主線程距離上一次的成功超過,為了數(shù)據(jù)安全會(huì)阻塞直到后臺(tái)線程執(zhí)行完完成。 redis可以滿足很多的應(yīng)用場(chǎng)景,而且因?yàn)閷⑺袛?shù)據(jù)都放到內(nèi)存中,所以它的讀寫性能很好,很多公司都在使用redis。redis給我們帶來便利的同時(shí),使用過程中會(huì)存在什么問題呢,本文將簡(jiǎn)單加以總結(jié)。 阻塞問題 r...

    jackzou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<