Redis系列:快取擊穿.穿透.雪崩(九)
什麼是熱key嗎?熱key問題怎麼解決?
-
所謂熱key問題就是,突然有幾十萬的請求去訪問redis上的某個特定key,那麼這樣會造成流量過於集中,達到物理網路卡上限,從而導致這臺redis的伺服器當機引發雪崩
-
針對熱key的解決方案:
(1)提前把熱key打散到不同的伺服器,降低壓力
(2)加入二級快取,提前載入熱key資料到記憶體中,如果redis當機,走記憶體查詢
快取擊穿
-
快取擊穿的概念就是
單個key併發訪問過高
,過期時導致所有請求直接打到db上,這個和熱key的問題比較類似,只是說的點在於過期導致請求全部打到DB上
-
解決方案:
(1)加鎖更新,比如請求查詢A,發現快取中沒有,對A這個key加鎖,同時去資料庫查詢資料,寫入快取,再返回給使用者,這樣後面的請求就可以從快取中拿到資料了
(2)將過期時間組合寫在value中,通過非同步的方式不斷的重新整理過期時間,防止此類現象
快取穿透
- 快取穿透是指
查詢不存在快取中的資料
,每次請求都會打到DB,就像快取不存在一樣
- 解決方案
(1)布隆過濾器:布隆過濾器的原理是在你存入資料的時候,會通過雜湊函式將它對映為一個位陣列中的K個點,同時把他們置為1,這樣當使用者再次來查詢A,而A在布隆過濾器值為0,直接返回,就不會產生擊穿請求打到DB了。
但是使用布隆過濾器之後會有一個問題就是誤判,因為它本身是一個陣列,可能會有多個值落到同一個位置,那麼理論上來說只要我們的陣列長度夠長,誤判的概率就會越低,這種問題就根據實際情況來就好了。
(2)快取空物件:當db沒有命中後,及使返回的空物件也快取起來,並且設定一個過期時間,後面就會直接取快取中取,也就不會打到DB上,但是也存在問題,如果空值多了,意味著快取需要更多的空間來儲存這些控制鍵。
快取雪崩
- 當某一時刻發生
大規模的快取失效
的情況,比如你的快取服務當機了,會有大量的請求進來直接打到DB上,這樣可能導致整個系統的崩潰
,稱為雪崩。雪崩和擊穿、熱key的問題不太一樣的是,他是指大規模的快取都過期失效了(比如淘寶雙11)
- 解決方案:
(1)redis高可用,多增加一些redis裝置,及搭建redis叢集
(2)針對不同key設定不同的過期時間,避免同時過期
(3)限流,如果redis當機,可以限流,避免同時刻大量請求打崩DB
(4)資料預熱,在正式訪問前,預先訪問一邊,把一些高頻的資料預先寫入快取中
(5)二級快取,同熱key的方案
相關文章
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- Redis快取穿透,擊穿和雪崩Redis快取穿透
- Redis系列 - 快取雪崩、擊穿、穿透及解決方案Redis快取穿透
- 怎麼學Redis 快取穿透、擊穿、雪崩Redis快取穿透
- 快取穿透、快取擊穿、快取雪崩快取穿透
- 快取穿透、快取雪崩、快取擊穿快取穿透
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- 【Redis】快取穿透,快取擊穿,快取雪崩及解決方案Redis快取穿透
- REDIS快取穿透,快取擊穿,快取雪崩原因+解決方案Redis快取穿透
- Redis的快取穿透、快取雪崩、快取擊穿的區別Redis快取穿透
- 面試總結 —— Redis “快取穿透”、“快取擊穿”、“快取雪崩”面試Redis快取穿透
- Redis 快取擊穿(失效)、快取穿透、快取雪崩怎麼解決?Redis快取穿透
- Redis雪崩、擊穿、穿透Redis穿透
- redis雪崩,穿透,擊穿Redis穿透
- 快取穿透、快取擊穿、快取雪崩區別快取穿透
- Redis 快取雪崩,快取擊穿和快取穿透技術方案總結Redis快取穿透
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- Redis 快取擊穿、穿透、雪崩的原因以及解決方案Redis快取穿透
- Redis 面試常見問題———快取雪崩、快取擊穿以及快取穿透Redis面試快取穿透
- 快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 【乾貨!!】三句話搞懂 Redis 快取穿透、擊穿、雪崩Redis快取穿透
- 關於快取穿透、快取擊穿、快取雪崩的模擬與解決(Redis)快取穿透Redis
- redis的雪崩、擊穿和穿透Redis穿透
- 快取穿透、快取擊穿、快取雪崩概念及解決方案快取穿透
- 快取穿透、快取擊穿、快取雪崩區別和解決方案快取穿透
- Redis快取穿透、擊穿、雪崩,資料庫與快取一致性Redis快取穿透資料庫
- 原來快取也會雪崩、擊穿、穿透啊!快取穿透
- 《我們一起進大廠》系列-快取雪崩、擊穿、穿透快取穿透
- 【專項測試系列】-快取擊穿、穿透、雪崩專項測試快取穿透
- Redis快取雪崩、快取穿透、快取擊穿對比看這一篇就夠了Redis快取穿透
- 一文徹底弄懂並解決Redis的快取雪崩,快取擊穿,快取穿透Redis快取穿透
- Redis快取穿透/快取雪崩/快取擊穿(案例:產生的原因 解決方案利/弊)Redis快取穿透
- 小白也能看懂的快取雪崩、穿透、擊穿快取穿透
- 面試官:快取穿透、快取雪崩和快取擊穿是什麼?面試快取穿透