1. 程式人生 > >Redis快取穿透、快取併發、快取雪崩

Redis快取穿透、快取併發、快取雪崩

一、快取穿透

1.產生原因:

查詢方式是先查詢快取、如果快取不存在則查詢資料庫、將查詢的結果回寫到快取、穿透的概念是快取不存在的情況下查詢資料庫、高併發應用下可能造成資料庫壓力過大

2.解決方案:

2.1:將對應的key為空的值也快取起來,減少資料庫的查詢

2.2:校驗key值的合法性、防止惡意攻擊

二、快取併發

1.產生原因:

高併發場景下同時大量查詢過期的key值、最後查詢資料庫將快取結果回寫到快取、造成資料庫壓力過大

2.解決方案:

2.1:採用分散式鎖-每次操作給當前操作上鎖、高併發壓力轉移到了分散式鎖

2.2:採用本地鎖-資料庫的查詢上鎖、但是多節點的情況下多資料庫查詢無效

2.3:軟過期-手動設定快取失效時間或者單獨開闢執行緒去更新快取資料

三、快取雪崩

1.產生原因:

伺服器重啟或者同一時間內快取失效、容易造成資料庫假死

2.解決方案:

2.1:手動設定redis過期策略、延長redis失效時長