REDIS快取雪崩 快取穿透 快取擊穿

2021-10-09 11:58:09 字數 551 閱讀 1087

快取雪崩

同一時刻有大量key失效,導致大量請求到資料庫

解決方案1:key失效時間加上隨機值,或者更高階的演算法分散失效時間。

解決方案2:沒有資料時也cache下,過期時間可設定短點,不把過多請求打到db去

快取穿透

當查詢redis中沒有的資料時,該查詢會下沉到資料庫層,同時資料庫層也沒有該資料,當這種情況大量出現或被惡意攻擊時,介面的訪問全部透過redis訪問資料庫,而資料庫也沒有這些資料,我們稱這種現象為快取穿透

解決方案1:請求使用者做鑑權校驗,引數校驗,非法直接返回。

解決方案2:使用布隆過濾器

快取擊穿

快取擊穿是指乙個key非常熱點,在不停的抗著大併發,大併發集中對這一點進行訪問,當這個key失效的瞬間,持續的大併發就穿透快取,直接請求資料庫。

解決方案1:設定熱點key永不過期,非同步更新

解決方案2:更新熱點key時加鎖,同乙個key最好只有乙個請求到資料庫

解決方案3:介面限流、熔斷、降級

Redis快取穿透 快取雪崩

把redis作為快取使用已經是司空見慣,但是使用redis後也可能會碰到一系列的問題,尤其是資料量很大的時候,經典的幾個問題如下 一 快取和資料庫間資料一致性問題 分布式環境下 單機就不用說了 非常容易出現快取和資料庫間的資料一致性問題,針對這一點的話,只能說,如果你的專案對快取的要求是強一致性的,...

Redis 快取穿透 快取雪崩

目錄 1.快取穿透 如何避免?如何選擇?2 快取擊穿 如何解決 3.快取雪崩 如何解決?快取穿透 一般的快取系統,都是按照key去快取查詢,如果不存在對應的value,就應該去後端系統查詢 比如db 一些惡意的請求會故意查詢不存在的key,請求量很大,就會對後端系統造成很大的壓力,或導致資料庫異常。...

redis快取穿透 快取雪崩

什麼是快取雪崩 在同一時間內大量的快取資料失效,大量的請求都會去資料庫查詢,造成快取雪崩。解決方法 這個沒有完美的解決方法,但是可以分析使用者行為,盡量讓失效時間點均勻分布,還有就是在快取失效後,通過加鎖或者佇列來控制讀資料庫寫快取的執行緒數量,比如對某國key只允許乙個執行緒查詢資料庫和快取,其他...