緩存穿透、緩存擊穿、緩存雪崩概念及解決方案

緩存穿透

概念

訪問一個(gè)不存在的key,緩存不起作用,請(qǐng)求會(huì)穿透到DB,流量大時(shí)DB會(huì)掛掉。

解決方案

  1. 采用布隆過濾器,使用一個(gè)足夠大的bitmap,用于存儲(chǔ)可能訪問的key,不存在的key直接被過濾;
  2. 訪問key未在DB查詢到值,也將空值寫進(jìn)緩存,但可以設(shè)置較短過期時(shí)間。

緩存雪崩

概念

大量的key設(shè)置了相同的過期時(shí)間,導(dǎo)致在緩存在同一時(shí)刻全部失效,造成瞬時(shí)DB請(qǐng)求量大、壓力驟增,引起雪崩。

解決方案

可以給緩存設(shè)置過期時(shí)間時(shí)加上一個(gè)隨機(jī)值時(shí)間,使得每個(gè)key的過期時(shí)間分布開來,不會(huì)集中在同一時(shí)刻失效。

緩存擊穿

概念

一個(gè)存在的key,在緩存過期的一刻,同時(shí)有大量的請(qǐng)求,這些請(qǐng)求都會(huì)擊穿到DB,造成瞬時(shí)DB請(qǐng)求量大、壓力驟增。

解決方案

在訪問key之前,采用SETNX(set if not exists)來設(shè)置另一個(gè)短期key來鎖住當(dāng)前key的訪問,訪問結(jié)束再刪除該短期key。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 相關(guān)的問題 數(shù)據(jù)庫TPS是多少,是否進(jìn)行測(cè)試過 緩存擊穿有哪些方案解決 前言 設(shè)計(jì)一個(gè)緩存系統(tǒng),不得不要考慮的問題...
    秦漢郵俠閱讀 5,749評(píng)論 0 5
  • 不管我們使用的哪種緩存產(chǎn)品,基本上都會(huì)遇到緩存擊穿、緩存失效以及熱點(diǎn)key的問題。一旦出現(xiàn)上述問題,如洪水般的請(qǐng)求...
    zhanglbjames閱讀 2,498評(píng)論 10 8
  • 緩存穿透 查詢一個(gè)緩存中必然不存在的數(shù)據(jù)。這將導(dǎo)致這個(gè)不存在的數(shù)據(jù)每次請(qǐng)求都要到存儲(chǔ)層去查詢,失去了緩存的意義。在...
    BscLiao閱讀 956評(píng)論 0 0
  • 一顆開花的洋白菜閱讀 144評(píng)論 0 0
  • 在這雨季,相思成災(zāi) 欲語還休 無盡思念默默發(fā)酵成酒 獨(dú)自飲下 奈何天涯各方,心已遙遠(yuǎn) 歲月磨平山棱,磨不平世間癡
    半卷書生閱讀 332評(píng)論 0 0

友情鏈接更多精彩內(nèi)容