新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Redis緩存如何出錯?
緩存系統(tǒng)如何出錯?

創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設公司,我們專注網(wǎng)站設計、網(wǎng)站制作、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,外鏈,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結構的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
下圖顯示了緩存可能出錯的 4 種典型情況及其解決方案。
01 雷群問題(Thurder Hurd)
當緩存中的大量 key 同時過期時,就會出現(xiàn)這種情況。然后,查詢請求直接沖擊數(shù)據(jù)庫,導致數(shù)據(jù)庫超載。
有兩種方法可以緩解這一問題:
- 避免為 key 設置相同的過期時間,在配置中添加一個隨機數(shù);
- 只允許核心業(yè)務數(shù)據(jù)訪問數(shù)據(jù)庫,而在緩存恢復之前阻止非核心數(shù)據(jù)訪問數(shù)據(jù)庫。
02 緩存滲透(Cache Penetration)
當緩存或數(shù)據(jù)庫中不存在 key 時,就會發(fā)生這種情況。應用程序無法從數(shù)據(jù)庫中檢索相關數(shù)據(jù)來更新緩存。這個問題給緩存和數(shù)據(jù)庫都造成了很大的壓力。
要解決這個問題,有兩種建議。
- 為不存在的 key 緩存一個空值,避免對數(shù)據(jù)庫造成沖擊。
- 使用 bloom 過濾器先檢查 key 是否存在,如果 key 不存在,我們就可以避免對數(shù)據(jù)庫的訪問。
03 緩存崩潰(Cache Breakdown)
這與雷群問題類似。它發(fā)生在熱鍵過期時。大量請求會訪問數(shù)據(jù)庫。
解決方案:由于熱鍵占據(jù)了 80% 的查詢量,我們沒有為它們設置過期時間。
04 緩存崩潰(Cache Crash)
當緩存崩潰時,所有請求都會進入數(shù)據(jù)庫。
有兩種方法可以解決這個問題。
- 設置斷路器 (Circuit Breaker),當緩存宕機時,應用服務無法訪問緩存或數(shù)據(jù)庫。
- 為高速緩存建立一個集群,以提高高速緩存的可用性。
名稱欄目:Redis緩存如何出錯?
網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/dphgcod.html


咨詢
建站咨詢
