日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

【Redis】什么是緩存雪崩,如何預防緩存雪崩?

作者:Mr.VK 更新時間: 2024-03-09 編程語言

【Redis】什么是緩存雪崩,如何預防緩存雪崩?

如果緩存集中在一段時間內(nèi)失效,也就是通常所說的熱點數(shù)據(jù)集中失效 (一般都會給緩存設定一個失效時間,過了失效時間后,該數(shù)據(jù)庫會被緩存直接刪除,從而一定程度上保證數(shù)據(jù)的實時性),發(fā)生大量的緩存穿透,造成大量的查詢要查詢數(shù)據(jù)庫,這就造成了緩存雪崩,可能會導致數(shù)據(jù)庫崩潰。

如果緩存中間件宕機,當然可以對緩存中間件做高可用集群來避免。

下面推薦幾個緩存雪崩的解決辦法:

  • 在緩存失效后,通過加鎖或者隊列來控制讀數(shù)據(jù)庫重建緩存的線程數(shù)量。例如,同一時刻只允許一個線程查詢數(shù)據(jù)和重建緩存,其他重建緩存的線程此時在等待狀態(tài)。
  • 可以通過緩存reload機制,預先去更新緩存,在即將發(fā)生大并發(fā)訪問前手動觸發(fā)加載緩存。
  • 不同的 Key,設置不同的過期時間,讓緩存失效的時間點盡量均勻。例如,可以在原有的失效時間基礎上增加一個隨機值,如1~5min 隨機,這樣每一個緩存的過期時間的重復率就會降低,就會大大降低緩存集體失效的概率。
  • 做二級緩存,或者雙緩存策略。A1 為原始緩存,A2 為備份緩存,A1失效時,可以訪問
    A2,A1緩存失效時間設置為短期,A2 設置為長期。

原文鏈接:https://blog.csdn.net/Mr_VK/article/details/132385965

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新