緩存穿透、緩存擊穿、緩存雪崩

1、 緩存穿透

  • 原因:總是查詢不存在的數(shù)據(jù),當大量請求不存在的數(shù)據(jù)時,最終請求會落在數(shù)據(jù)庫上會給數(shù)據(jù)庫帶來很大壓力。
  • 解決辦法:設置返回空對象,而不是返回null,這樣請求不會大量落在數(shù)據(jù)庫上。

2、緩存擊穿

  • 原因:大量請求訪問同一份熱點數(shù)據(jù),剛好遇到熱點數(shù)據(jù)即將過期,大量請求最終落在數(shù)據(jù)庫上。
  • 解決辦法:1、設置熱點數(shù)據(jù)永不過期 2、加鎖操作,當一個線程訪問數(shù)據(jù)之后重建緩存。

3、緩存雪崩

  • 原因:1、可能是大量請求剛好遇到大量的key同時過期 2、可能是Redis服務器宕機
  • 解決辦法:1、給緩存數(shù)據(jù)過期時間附加隨機值,避免大量的數(shù)據(jù)同時失效 2、構建高可用的Redis集群,避免單機宕機導致服務不可用。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容