一、雪崩
原因:大量key同一時間失效,導(dǎo)致redis短暫失效。所有請求直接到mysql,打垮mysql
解決方法:
1.設(shè)置隨機的過期時間
2.限流組件,可以設(shè)置每秒的請求
二、穿透
原因:查詢一個不存在的數(shù)據(jù)(類似id = -1),redis和mysql中都查不到,導(dǎo)致mysql被打垮
解決方法:
1.布隆過濾
2.每次系統(tǒng)從數(shù)據(jù)庫中只要沒查到,就寫一個空值到緩存里去
三、擊穿
原因:某個熱key過期,大量的請求就擊穿了緩存,直接請求數(shù)據(jù)庫
解決方法:設(shè)置熱key永久有效