一? redis的緩存雪崩
1.1 緩存雪崩
在redis中,新,舊數(shù)據(jù)交替時候,舊數(shù)據(jù)進行了刪除,新數(shù)據(jù)沒有更新過來,造成在高并發(fā)環(huán)境下,大量請求查詢redis沒有數(shù)據(jù),直接查詢mysql,造成mysql的壓力驟增,給mysql造成極大的壓力,造成一連串的后續(xù)異常反應。
1.2 解決辦法
1.大多數(shù)系統(tǒng)設計者考慮用加鎖(最多的解決方案)或者隊列的方式保證來保證不會有大量的線程對數(shù)據(jù)庫一次性進行讀寫。
2.redis中的key設置永不過期;3.redis的集群實現(xiàn)高可用。主從+哨兵
二 緩存穿透
2.1 緩存穿透
在redis中,查詢redis數(shù)據(jù)不存在,查詢mysql也不存在,造成兩次無用的查詢。造成額外不必要的開銷
2.2 解決辦法
使用布隆過濾器,Bloom-Filter一般用于在大數(shù)據(jù)量的集合中判定某元素是否存在。最常見的則是采用布隆過濾器,將所有可能存在的數(shù)據(jù)哈希到一個足夠大的bitmap中,一個一定不存在的數(shù)據(jù)會被這個bitmap攔截掉,從而避免了對底層存儲系統(tǒng)的查詢壓力。
三 緩存擊穿
3.1 緩存擊穿
在redis中,一開始熱點key,redis緩存,mysql中均可查詢到,突然某種原因,key失效后,查詢redis,mysql均不存在,造成請求大量訪問mysql,存在mysql崩潰的風險。
3.2 解決辦法
使用A,B雙緩存,差異失效時間;更新時,先B后A,查詢時,先A后B,解決熱點key失效問題,造成緩存擊穿。
四? 總結
文章來源:http://www.zghlxwxcb.cn/news/detail-607324.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-607324.html
到了這里,關于redis中緩存雪崩,緩存穿透,緩存擊穿的原因以及解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!