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

全國咨詢/投訴熱線:400-618-4000

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

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

好口碑IT培訓

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

1.緩存null

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

2.白名單策略

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

? 使用布隆過濾器(有關布隆過濾器的命中問題對當前狀況可以忽略)

2.實施監(jiān)控

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

? 非活動時段波動:通常檢測3-5倍,超過5倍納入重點排查對象

? 活動時段波動:通常檢測10-50倍,超過50倍納入重點排查對象

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

總的來說:緩存擊穿是指訪問了不存在的數(shù)據(jù),跳過了合法數(shù)據(jù)的redis數(shù)據(jù)緩存階段,每次訪問數(shù)據(jù)庫,導致對數(shù)據(jù)庫服務器造成壓力。通常此類數(shù)據(jù)的出現(xiàn)量是一個較低的值,當出現(xiàn)此類情況以毒攻毒,并及時報警。應對策略應該在臨時預案防范方面多做文章。

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

0 分享到:
和我們在線交談!