Redis緩存穿透、緩存併發、緩存雪崩 原

一、緩存穿透

1.產生原因:

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

2.解決方案:

2.1:將對應的key爲空的值也緩存起來,減少數據庫的查詢

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

二、緩存併發

1.產生原因:

高併發場景下同時大量查詢過期的key值、最後查詢數據庫將緩存結果回寫到緩存、造成數據庫壓力過大

2.解決方案:

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

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

2.3:軟過期-手動設置緩存失效時間或者單獨開闢線程去更新緩存數據

三、緩存雪崩

1.產生原因:

服務器重啓或者同一時間內緩存失效、容易造成數據庫假死

2.解決方案:

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章