您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關html中緩存擊穿、穿透、雪崩的區別是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
緩存擊穿 (某個熱點key緩存失效了)
緩存中沒有但數據庫中有的數據,假如是熱點數據,那key在緩存過期的一刻,同時有大量的請求,這些請求都會擊穿到DB,造成瞬時DB請求量大、壓力增大。
和緩存雪崩的區別在于這里針對某一key緩存,后者則是很多key。
預防:設置熱點數據不過期,定時任務定時更新緩存,或者設置互斥鎖。
緩存穿透(查詢不存在數據)
查詢一個不存在的數據,由于緩存是不命中的,并且出于容錯考慮,如發起為id為“-1”不存在
的數據如果從存儲層查不到數據則不寫入緩存這將導致這個不存在的數據每次請求都要到存儲層去
查詢,失去了緩存的意義。存在大量查詢不存在的數據,可能DB就掛掉了,這也是黑客利用不存在的key頻繁攻擊應用的一種方式。
預防:接口層增加校驗,數據合理性校驗,緩存取不到的數據,在數據庫中也沒有取到,這時也可以將key-value對寫為key-null,設置短點的過期時間,防止同個key被一直攻擊。
緩存雪崩 (多個熱點key都過期)
大量的key設置了相同的過期時間,導致在緩存在同一時刻全部失效,造成瞬時DB請求量大、壓力驟增,引起雪崩
預防:存數據的過期時間設置隨機,防止同一時間大量數據過期現象發生,設置熱點數據永遠不過期,定時任務定時更新。
感謝各位的閱讀!關于“html中緩存擊穿、穿透、雪崩的區別是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。