緩存技術可以用來減輕數據庫的壓力,提升訪問效率。目前在企業項目中對緩存也是越來越重視。但是緩存不是說隨隨便便加入項目就可以了。將緩存整合到項目中,這才是第一步。而緩存帶來的穿透問題,進而導致的雪蹦問題都是我們迫切需要解決的問題。本篇文章將我平時項目中的解決方案分享給大家,以供參考。
一、緩存穿透的原理
緩存的正常使用如圖:
如圖所示,緩存的使用流程:
1、先從緩存中取數據,如果能取到,則直接返回數據給用戶。這樣不用訪問數據庫,減輕數據庫的壓力。
2、如果緩存中沒有數據,就會訪問數據庫。
這里面就會存在一個BUG,如圖:
如圖,緩存就像是數據庫的一道防火墻,將請求比較頻繁的數據放到緩存中,從而減輕數據庫的壓力。 但是如果有人惡意攻擊,那就很輕松的穿透你的緩存,將所有的壓力都給數據庫。比如上圖,你緩存的key都是正整數,但是我偏偏使用負數作為key訪問你的緩存,這樣就會導致穿透緩存,將壓力直接給數據庫。
二、導致緩存穿透的原因
緩存穿透的問題,肯定是再大并發情況下。依此為前提,我們分析緩存穿透的原因如下:
1、惡意攻擊,猜測你的key命名方式,然后估計使用一個你緩存中不會有的key進行訪問。
2、第一次數據訪問,這時緩存中還沒有數據,則并發場景下,所有的請求都會壓到數據庫。
3、數據庫的數據也是空,這樣即使訪問了數據庫,也是獲取不到數據,那么緩存中肯定也沒有對應的數據。這樣也會導致穿透。
三、解決緩存穿透
緩存穿透在于一步步規避穿透的原因,如圖:
如上圖所示,解決的步驟如下:
1、再web服務器啟動時,提前將有可能被頻繁并發訪問的數據寫入緩存。―這樣就規避大量的請求在第3步出現排隊阻塞。
2、規范key的命名,并且統一緩存查詢和寫入的入口。這樣,在入口處,對key的規范進行檢測。 主站蜘蛛池模板: 一区二区视频在线看 | 成人一区三区 | 久草在线网址 | 黄色羞羞视频在线观看 | 精品久久久久久国产三级 | 欧美日韩在线视频一区 | 亚洲成人欧美在线 | 一级电影免费在线观看 | 黄色网址免费入口 | 欧美一级片一区 | 久久亚洲网 | 成人福利免费在线观看 | 午夜影视一区二区 | 91九色电影| 中文字幕一区二区三区久久 | 男男啪羞羞视频网站 | 久久久久久久久久久久网站 | 久久精品亚洲一区二区 | 国产精品久久久久久影院8一贰佰 | 在线观看麻豆 | 国产一区免费 | 欧美一区高清 | 亚州综合一区 | 91av资源在线 | 成人在线免费看 | 成人不卡免费视频 | 毛片中文字幕 | 国产午夜精品在线 | 中文字幕极速在线观看 | chinesexxx少妇露脸 | 亚洲精品久久久久久 | 国产一级小视频 | 成人做爰高潮片免费视频韩国 | 成年人小视频在线观看 | 欧美成人福利 | 91在线精品亚洲一区二区 | 欧美a区| 成人午夜看片 | 国产成人综合在线视频 | 欧美精品一区二区三区在线 | 国产精品入口夜色视频大尺度 |