教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

什么是緩存穿透?緩存穿透解決方案

更新時(shí)間:2023年07月25日11時(shí)41分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

緩存穿透是指查詢一個(gè)緩存中和數(shù)據(jù)庫(kù)中都不存在的數(shù)據(jù),導(dǎo)致每次查詢這條數(shù)據(jù)都會(huì)透過(guò)緩存,直接查庫(kù),最后返回空。.Redis中大面積出現(xiàn)未命中,出現(xiàn)非正常URL訪問(wèn)。解決緩存穿透問(wèn)題可采用以下幾個(gè)方案:

1.緩存null

? 對(duì)查詢結(jié)果為null的數(shù)據(jù)進(jìn)行緩存(長(zhǎng)期使用,定期清理),設(shè)定短時(shí)限,例如30-60秒,最高5分鐘

2.白名單策略

? 提前預(yù)熱各種分類數(shù)據(jù)id對(duì)應(yīng)的bitmaps,id作為bitmaps的offset,相當(dāng)于設(shè)置了數(shù)據(jù)白名單。當(dāng)加載正常數(shù)據(jù)時(shí)放行,加載異常數(shù)據(jù)時(shí)直接攔截(效率偏低)

? 使用布隆過(guò)濾器(有關(guān)布隆過(guò)濾器的命中問(wèn)題對(duì)當(dāng)前狀況可以忽略)

2.實(shí)施監(jiān)控

? 實(shí)時(shí)監(jiān)控redis命中率(業(yè)務(wù)正常范圍時(shí),通常會(huì)有一個(gè)波動(dòng)值)與null數(shù)據(jù)的占比

? 非活動(dòng)時(shí)段波動(dòng):通常檢測(cè)3-5倍,超過(guò)5倍納入重點(diǎn)排查對(duì)象

? 活動(dòng)時(shí)段波動(dòng):通常檢測(cè)10-50倍,超過(guò)50倍納入重點(diǎn)排查對(duì)象

? 根據(jù)倍數(shù)不同,啟動(dòng)不同的排查流程。然后使用黑名單進(jìn)行防控(運(yùn)營(yíng))

總的來(lái)說(shuō):緩存擊穿是指訪問(wèn)了不存在的數(shù)據(jù),跳過(guò)了合法數(shù)據(jù)的redis數(shù)據(jù)緩存階段,每次訪問(wèn)數(shù)據(jù)庫(kù),導(dǎo)致對(duì)數(shù)據(jù)庫(kù)服務(wù)器造成壓力。通常此類數(shù)據(jù)的出現(xiàn)量是一個(gè)較低的值,當(dāng)出現(xiàn)此類情況以毒攻毒,并及時(shí)報(bào)警。應(yīng)對(duì)策略應(yīng)該在臨時(shí)預(yù)案防范方面多做文章。

無(wú)論是黑名單還是白名單,都是對(duì)整體系統(tǒng)的壓力,警報(bào)解除后盡快移除。

0 分享到:
和我們?cè)诰€交談!