亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

高并發(fā)系統(tǒng)下,常見(jiàn)的幾種緩存失效問(wèn)題及解決方案

 

緩存穿透

介紹:當(dāng)查詢一個(gè)不存在的數(shù)據(jù),此時(shí)緩存是不命中的,就會(huì)去查詢 db,這將導(dǎo)致每次查詢這個(gè)不存在的數(shù)據(jù)都要去訪問(wèn) db,緩存就沒(méi)有意義了。

如果不懷好意的人利用不存在的數(shù)據(jù)進(jìn)行攻擊,可能導(dǎo)致數(shù)據(jù)庫(kù)崩潰

解決:

  • 查詢到的不存在的數(shù)據(jù)也放入緩存,可以存為 null,并加入短暫的過(guò)期時(shí)間;但如果別人每次都請(qǐng)求一個(gè)不同的 key,會(huì)導(dǎo)致大量無(wú)用 key 存在 redis 中。
  • 在 redis 和 db 間加個(gè)過(guò)濾器(比如布隆過(guò)濾器),過(guò)濾不存在的 key

緩存雪崩

介紹:我們?cè)O(shè)置某個(gè) key 時(shí)使用了相同的過(guò)期時(shí)間,導(dǎo)致緩存在同一時(shí)間失效,請(qǐng)求涌入 db,導(dǎo)致數(shù)據(jù)庫(kù)壓力過(guò)重雪崩。

解決:

  • 在原有的失效時(shí)間基礎(chǔ)上加上一個(gè)隨機(jī)值,比如 1~5 分鐘,這樣每一個(gè)緩存過(guò)期時(shí)間的重復(fù)率就會(huì)變低,就很難引起集體失效的事件。

緩存擊穿

介紹:對(duì)于一些設(shè)置了過(guò)期時(shí)間的 key,如果這些 key 可能會(huì)在某些時(shí)間點(diǎn)被超高并發(fā)地訪問(wèn),是一種非常“熱點(diǎn)”的數(shù)據(jù)。如果這個(gè) key 在大量請(qǐng)求同時(shí)進(jìn)來(lái)前正好失效,那么所有對(duì)這個(gè) key 的數(shù)據(jù)查詢都落到 db,我們稱為緩存擊穿。

解決:

  • 加鎖。大量并發(fā)只讓一個(gè)去查,其他人等待,查到以后釋放鎖,其他人獲取到鎖,先查緩存,就會(huì)有數(shù)據(jù),不用去db
  • 在 redis、db 中間做一個(gè)二級(jí)緩存

分享到:
標(biāo)簽:失效 緩存
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定