1. 程式人生 > >菜雞的redis之路(四)-常見快取問題之快取穿透

菜雞的redis之路(四)-常見快取問題之快取穿透

常見的redis快取問題

1.快取穿透 -->頻繁查詢一個不存在的資料,由於快取不命中,每次都要查詢持久層,從而失去快取的意義
2.快取雪崩 -->快取大量失效的時候,引發大量查詢資料庫
3.熱點Key -->某個key訪問非常頻繁,當key失效的時候,有大量執行緒來構建快取,導致負載增加,系統崩潰

快取穿透

方案一:使用互斥鎖排隊(缺點:鎖機制影響效能)
在這裡插入圖片描述
在這裡插入圖片描述

#######################獲取鎖############################
在這裡插入圖片描述

#######################釋放鎖############################

在這裡插入圖片描述
或者:
在這裡插入圖片描述

方案二:布隆過濾器(缺點:存在誤判率,刪除困難等)
在這裡插入圖片描述

在這裡插入圖片描述

實現布隆過濾器:
在這裡插入圖片描述

方案三:快取空值

第一個商品資料請求,查詢redis,返現沒有快取,然後查詢資料庫,也沒有值,此時,將這個key快取到redis,值為null,那麼接下來相同key的請求就會查詢redis,走不到資料庫層…當商品資料更新的時候,順便去更新快取即可
在這裡插入圖片描述