緩存穿透
訪問數(shù)據(jù)庫中不存在的數(shù)據(jù)端逼,緩存中自然也不存在朗兵, 所以每次請求都穿過緩存直到數(shù)據(jù)庫《ヌ玻或者外部攻擊故意請求不存在的key余掖。
解決方案:
1.不存在的數(shù)據(jù)設(shè)置一個空值
2.使用布隆過濾器
緩存擊穿
某一非常非常熱點的key訪問非常頻繁,高并發(fā)訪問的情況下礁鲁,當(dāng)這個key在失效時(expire到期或LRU淘汰)的瞬間盐欺,大最請求進(jìn)來直接請求到了數(shù)據(jù)庫。
解決方案:
1.熱點key設(shè)置永不過期仅醇,要看具體需求
2.查詢數(shù)據(jù)庫數(shù)據(jù)時加分布式鎖冗美,然后查db然后設(shè)置到redis里
緩存雪崩
大批量熱點的key同時到期,高并發(fā)請求直接請求到數(shù)據(jù)庫析二,引起db壓力造成查詢阻塞甚至宕機(jī)粉洼。
或redis故障導(dǎo)致請求都到了db。
解決方案:
1.設(shè)置熱點key永不過期(具體看業(yè)務(wù)場景)甲抖;設(shè)置不同的過期時間
2.加一層本地緩存漆改;限流組件