首頁 資料庫 Redis redis產生雪崩怎麼解決

redis產生雪崩怎麼解決

Jul 04, 2019 pm 02:24 PM

redis產生雪崩怎麼解決

產生雪崩的原因:

快取雪崩通俗簡單的理解就是:由於原有快取失效(或資料未載入到快取中),新快取未到期間(快取正常從Redis中獲取,如下圖)所有原本應該訪問快取的請求都去查詢資料庫了,而對資料庫CPU和記憶體造成巨大壓力,嚴重的會造成資料庫宕機,造成系統的崩潰。

基本解決想法如下:

  第一,大多數系統設計者考慮用加鎖或佇列的方式保證來確保不會有大量的執行緒對資料庫一次進行讀寫,避免快取失效時對資料庫造成太大的壓力,雖然能夠在一定的程度上緩解了資料庫的壓力但是同時又降低了系統的吞吐量。

 第二,分析使用者的行為,盡量讓快取失效的時間均勻分佈。

 第三,如果是因為某台快取伺服器宕機,可以考慮做主備,例如:redis主備,但是雙重快取涉及到更新事務的問題,update可能讀到髒數據,需要好好解決。

Redis雪崩效應的解決方案:

1、可以使用分散式鎖,單機版的話本地鎖

2、訊息中介軟體方式

3、一級和二級快取Redis Ehchache

4、均攤分配Redis的key的失效時間

解釋:

 1、  當突然有大量請求到資料庫伺服器時候,進行請求限制。使用所的機制,保證只有一個執行緒(請求)操作。否則進行排隊等待(集群分散式鎖,單機本地鎖)。減少伺服器吞吐量,效率低。

 加入鎖定!

redis產生雪崩怎麼解決

保證只能有一個執行緒進入  實際上只能有一個請求在執行查詢操作

也可以在此處進行使用限流的策略~

2、使用訊息中間件解決

這種方案是最可靠的方案!

訊息中間件可以解決高並發! ! !

如果大量的請求進行存取時候,Redis沒有值的情況,會將查詢的結果存放在訊息中介軟體中(利用了MQ非同步特性)

redis產生雪崩怎麼解決

3、做二級緩存,A1為原始緩存,A2為拷貝緩存,A1失效時,可以存取A2,A1緩存失效時間設定為短期,A2設定為長期(此點為補充)

4、不同的key,設定不同的過期時間,讓快取失效的時間點盡量均勻。

更多Redis相關知識,請造訪Redis使用教學欄位!

以上是redis產生雪崩怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在Redis群集中選擇一個碎片鍵? 如何在Redis群集中選擇一個碎片鍵? Mar 17, 2025 pm 06:55 PM

本文討論了在Redis群集中選擇碎片鍵,並強調了它們對性能,可伸縮性和數據分佈的影響。關鍵問題包括確保均勻數據分配,與訪問模式保持一致以及避免常見錯誤l

如何在Redis中實施身份驗證和授權? 如何在Redis中實施身份驗證和授權? Mar 17, 2025 pm 06:57 PM

本文討論了在REDIS中實施身份驗證和授權,重點是實現身份驗證,使用ACL以及確保REDIS的最佳實踐。它還涵蓋了管理用戶權限和工具以增強重新安全性。

如何將Redis用於工作隊列和背景處理? 如何將Redis用於工作隊列和背景處理? Mar 17, 2025 pm 06:51 PM

本文討論了使用REDIS進行工作隊列和背景處理,詳細的設置,作業定義和執行。它涵蓋了原子運營和工作優先級等最佳實踐,並解釋了REDIS如何提高處理效率。

如何在REDIS中實施緩存無效策略? 如何在REDIS中實施緩存無效策略? Mar 17, 2025 pm 06:46 PM

本文討論了在REDIS中實施和管理緩存無效的策略,包括基於時間的到期,事件驅動的方法和版本控制。它還涵蓋了緩存到期的最佳實踐和監視和自動的工具

如何監視REDIS群集的性能? 如何監視REDIS群集的性能? Mar 17, 2025 pm 06:56 PM

文章討論了使用Redis CLI,Redis Insight和Datadog和Prometheus等工具等工具進行監視REDIS群集的性能和健康。

如何將Redis用於酒吧/子消息傳遞? 如何將Redis用於酒吧/子消息傳遞? Mar 17, 2025 pm 06:48 PM

本文介紹瞭如何將Redis用於酒吧/子消息傳遞,涵蓋設置,最佳實踐,確保消息可靠性和監視性能。

如何在Web應用程序中使用REDI進行會話管理? 如何在Web應用程序中使用REDI進行會話管理? Mar 17, 2025 pm 06:47 PM

本文討論了在Web應用程序中使用REDIS進行會話管理,詳細介紹設置,諸如可伸縮性和性能以及安全措施之類的好處。

如何確保重新侵害常見漏洞? 如何確保重新侵害常見漏洞? Mar 17, 2025 pm 06:57 PM

文章討論了確保重新侵害漏洞,重點關注強密碼,網絡綁定,命令禁用,身份驗證,加密,更新和監視。

See all articles