一、緩存穿透
1.何為緩存穿透?
緩存穿透,是指查詢一個數據庫一定不存在的數據。正常的使用緩存流程大致是,數據查詢先進行緩存查詢,如果key不存在或者key已經過期,再對數據庫進行查詢,并把查詢到的對象,放進緩存。如果數據庫查詢對象為空,則不放進緩存。
2.緩存穿透解決方案
1)布隆過濾器攔截不存在的請求
2)redis緩存不存在的值
3)按照業務需要,設定規則直接進行攔截,比如用戶id,要求id>0
二、緩存擊穿
1.何為緩存擊穿?
緩存擊穿,是指一個key非常熱點,在不停的扛著大并發,大并發集中對這一個點進行訪問,當這個key在失效的瞬間,持續的大并發就穿破緩存,直接請求數據庫,就像在一個屏障上鑿開了一個洞。
2.緩存擊穿解決方案
1)設置數據永遠不過期
2)加分布式鎖,單線程查詢數據庫
三、緩存雪崩
1.何為緩存雪崩?
緩存雪崩,是指在某一個時間段,緩存集中過期失效。
2.緩存雪崩解決方案
1)緩存數據的過期時間設置為隨機值
2)數據設置永不過期






