溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據中緩存穿透,緩存雪崩,緩存擊穿以及解決辦法是什么

發布時間:2021-12-06 11:02:37 來源:億速云 閱讀:226 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關大數據中緩存穿透,緩存雪崩,緩存擊穿以及解決辦法是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

(1)緩存穿透:指的是操作直接穿過了緩存層面,直接到達db層面,從而稱為緩存穿透。直接查詢某一條不存在的數據,就會發生這種情況(其實還是要經過緩存層,只不過緩存層沒有這條數據,就會發起db層面的操作)。

解決方案:

1. Bloom filter算法(布隆過濾器???)

2. 空值緩存: 一種比較簡單的解決辦法,在第一次查詢完不存在的數據后,將該key與對應的空值也放入緩存中,只不過設定為較短的失效時間,例如幾分鐘,這樣則可以應對短時間的大量的該key攻擊,設置為較短的失效時間是因為該值可能業務無關,存在意義不大,且該次的查詢也未必是攻擊者發起,無過久存儲的必要,故可以早點失效。

(2) 緩存雪崩:多個緩存數據設置的失效時間相同,在同一時間同時失效,大量系統請求從請求緩存變成請求數據庫,造成數據庫崩潰。

解決方案:

1. 交錯失效時間(即更改數據緩存的有效期,建議設置成固定時間的隨機時間,例如設置成3-5秒鐘中間的任意時間)。

2. redis高可用

這個思想的含義是,既然redis有可能掛掉,那我多增設幾臺redis,這樣一臺掛掉之后其他的還可以繼續工作,其實就是搭建的集群。

3.限流降級

這個解決方案的思想是,在緩存失效后,通過加鎖或者隊列來控制讀數據庫寫緩存的線程數量。比如對某個key只允許一個線程查詢數據和寫緩存,其他線程等待。

4. 數據預熱

數據加熱的含義就是在正式部署之前,我先把可能的數據先預先訪問一遍,這樣部分可能大量訪問的數據就會加載到緩存中。在即將發生大并發訪問前手動觸發加載緩存不同的key,設置不同的過期時間,讓緩存失效的時間點盡量均勻。

(3) 緩存擊穿:緩存擊穿實際上是緩存雪崩的一個特例,擊穿與雪崩的區別即在于擊穿是對于特定的熱點數據來說,而雪崩是全部數據。(典型例子:微博的熱點話題)。

解決方案:1. 二級緩存(參考鏈接)(阿里雙十一流量緩存擊穿解決辦法)LRU-K算法

上述就是小編為大家分享的大數據中緩存穿透,緩存雪崩,緩存擊穿以及解決辦法是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女