Redis 熱鍵問題,快取擊穿,快取穿透,快取雪崩

2022-02-07 05:30:33 字數 487 閱讀 3588

1.熱鍵問題:描述:熱鍵被大量客戶端訪問,導致大量網路流量集中在一台redis伺服器上,伺服器宕機。

解決方法:將熱鍵分散到不同的redis伺服器上

2.快取擊穿:描述:熱鍵被大量客戶端訪問,熱鍵如果過期,可能導致大量網路流量打到 db 伺服器上,導致資料庫伺服器宕機

解決方法:對於熱鍵,訪問之前如果不存在的話使用分布式鎖(應用執行緒訪問不到,一般返回false,就讓應用執行緒自己執行等待邏輯)

非同步重新整理這個鍵的過期時間,延遲

在db伺服器和 redis伺服器間多設定一層快取

3.快取穿透:描述:乙個鍵根本就不存在,但是還是被大量的訪問,輕則增大資料庫的壓力,重則資料庫宕機

解決方法:布隆過濾器,過濾掉不存在的key請求

4.快取雪崩:大量的熱鍵過期,或者redis資料庫宕機,導致大量網路流量打到 db 上,db宕機

解決方法:多設一層快取

避免大量熱鍵同時過期

當redis宕機的時候,要給網路限流

redis快取擊穿問題

1.讀模式,如何讀取乙個資料,應該遵循先從快取中讀取,如果快取中沒有,再在資料庫讀取,如果在資料庫查到資料則再放到快取中,並返回 2.寫模式,如何保證快取中的資料和資料庫中的資料是一致的 可以使用雙寫模式或失效模式 指查詢乙個一定不存在的資料,由於快取是不命中的,將會查詢資料庫,但是資料庫也無此記錄...

redis快取擊穿

1 快取擊穿出現的場景 我們知道redis的資料是儲存在記憶體的,而記憶體是有限的,所以一般會設定過期時間,當某個key過期了,而此時大量的併發來請求這個key,導致都去請求mysql啦,而mysql的併發連線數很低,缺少了redis這層盾牌,mysql自然扛不住,這不是架構的問題,因為之前的架構中...

Redis快取擊穿

什麼是快取擊穿 key對應的資料存在,但是在redis中key過期了,此時如有大量的併發請求過來,這些請求發現快取過期一般都會從後端伺服器載入資料並回設到快取,這個時候大併發請求可能會瞬間把後端db壓垮 如圖 出現快取穿透的特點 1.資料庫訪問壓力瞬間增加 2.redis裡面出現大量key過期 3....