redis的快取穿透,快取擊穿,快取雪崩

2022-06-29 17:15:12 字數 306 閱讀 7669

1. 快取穿透

web伺服器在處理請求的時候,先去redis查詢資料,沒有查到,然後到mysql去查資料

低頻的快取穿透不可怕,使用布隆過濾器解決,把mysql的熱門資料放到布隆過濾器中過濾,不直接通過資料庫

2. 快取擊穿(一般不用處理)

redis中有一條熱門資料到時間失效後,依然熱門,同時又大量請求訪問redis,查不到,去找mysql

使用mysql分布式鎖,zookeeper分布式鎖

3. 快取雪崩

大量資料在某一時刻同時失效

錯開設定失效的時間 或者 搭建redis集群

Redis快取穿透,穿透擊穿,快取雪崩

乙個一定不存在快取及查詢不到的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。有很多種方法可以有效地解決快取穿透問題,最常見的則是採用布隆過濾器,將所有可能存在的資料雜湊到乙個足夠大的bit...

Redis 快取穿透 快取擊穿 快取雪崩

快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為小於0的資料或id為特別大等不存在的資料。這時的使用者很可能是攻擊者,攻擊會導致資料庫壓力過大。舉例 通過分類id查詢廣告集合 param categoryid 廣告分類id return 廣告集合 public listf...

Redis快取穿透 快取擊穿 快取雪崩

4 總結 一般企業都會用到mysql等關係型資料庫,當訪問量不大的時候還可以支撐 當併發量高的時候,比如商品搶購或者主頁訪問瞬間較大的時候,請求直接到達db,可能會導致系統效能急劇下降以致癱瘓。db是面向磁碟的,磁碟io是比較重的操作,效能較低。為了克服上述的問題,通常需要在客戶端和db之間引入一層...