{eval=Array;=+count(Array);}
(1)雪崩、擊穿、穿透最終的結(jié)果都是請求壓力會轉(zhuǎn)移到數(shù)據(jù)庫,導(dǎo)致系統(tǒng)崩潰,但場景有所區(qū)別;
(2)雪崩
◆ 大量的不同請求無法在 Redis 中命中,導(dǎo)致請求都流向了數(shù)據(jù)庫,數(shù)據(jù)庫的壓力劇增;
◆ 發(fā)生雪崩的原因可能是,有大量的緩存 Key 在同一時間過期。
(3)擊穿
◆ 并發(fā)很大的情況下,針對某個特定的請求,緩存中數(shù)據(jù)不存在,導(dǎo)致都請求到了數(shù)據(jù)庫,造成數(shù)據(jù)庫壓力過大;
◆ 原因通常是某個 Key 過期了;
◆ 和雪崩相比較,擊穿是針對的單個 Key。
(4)穿透
◆ 緩存穿透是指請求的數(shù)據(jù)不在 Redis 緩存中,也不在數(shù)據(jù)庫中,導(dǎo)致訪問緩存時,找不到數(shù)據(jù),會去請求數(shù)據(jù)庫,而在數(shù)據(jù)庫中也找不到相應(yīng)的數(shù)據(jù);
◆ 并發(fā)比較大的時候,數(shù)據(jù)庫會遭受巨大的壓力;
◆ 發(fā)生穿透的原因可能有兩個:
◆ 誤操作導(dǎo)致 Redis 和數(shù)據(jù)庫中的數(shù)據(jù)都被刪除了;
◆ 惡意攻擊。
2
回答1
回答6
回答1
回答0
回答0
回答0
回答0
回答0
回答0
回答