国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Redis > 正文

redis緩存穿透解決方法

2020-10-28 21:29:53
字體:
來源:轉載
供稿:網友

緩存技術可以用來減輕數據庫的壓力,提升訪問效率。目前在企業項目中對緩存也是越來越重視。但是緩存不是說隨隨便便加入項目就可以了。將緩存整合到項目中,這才是第一步。而緩存帶來的穿透問題,進而導致的雪蹦問題都是我們迫切需要解決的問題。本篇文章將我平時項目中的解決方案分享給大家,以供參考。

一、緩存穿透的原理

緩存的正常使用如圖:

20180507174845.png

如圖所示,緩存的使用流程:

1、先從緩存中取數據,如果能取到,則直接返回數據給用戶。這樣不用訪問數據庫,減輕數據庫的壓力。

2、如果緩存中沒有數據,就會訪問數據庫。

這里面就會存在一個BUG,如圖:

20180507174951.png

如圖,緩存就像是數據庫的一道防火墻,將請求比較頻繁的數據放到緩存中,從而減輕數據庫的壓力。 但是如果有人惡意攻擊,那就很輕松的穿透你的緩存,將所有的壓力都給數據庫。比如上圖,你緩存的key都是正整數,但是我偏偏使用負數作為key訪問你的緩存,這樣就會導致穿透緩存,將壓力直接給數據庫。

二、導致緩存穿透的原因

緩存穿透的問題,肯定是再大并發情況下。依此為前提,我們分析緩存穿透的原因如下:

1、惡意攻擊,猜測你的key命名方式,然后估計使用一個你緩存中不會有的key進行訪問。

2、第一次數據訪問,這時緩存中還沒有數據,則并發場景下,所有的請求都會壓到數據庫。

3、數據庫的數據也是空,這樣即使訪問了數據庫,也是獲取不到數據,那么緩存中肯定也沒有對應的數據。這樣也會導致穿透。

三、解決緩存穿透

緩存穿透在于一步步規避穿透的原因,如圖:

Redis避免緩存穿透的解決方案.png

如上圖所示,解決的步驟如下:

1、再web服務器啟動時,提前將有可能被頻繁并發訪問的數據寫入緩存。―這樣就規避大量的請求在第3步出現排隊阻塞。

2、規范key的命名,并且統一緩存查詢和寫入的入口。這樣,在入口處,對key的規范進行檢測。

主站蜘蛛池模板: 北流市| 方正县| 陵水| 中阳县| 长乐市| 永丰县| 阜新| 黎城县| 韩城市| 承德县| 林周县| 尉氏县| 固阳县| 松潘县| 探索| 乐山市| 孝义市| 德清县| 梓潼县| 顺义区| 黎平县| 罗城| 木里| 县级市| 平凉市| 黄浦区| 五河县| 阳东县| 泰州市| 壶关县| 江陵县| 勃利县| 锡林郭勒盟| 杭锦后旗| 循化| 铁岭市| 合川市| 榆中县| 荆门市| 廉江市| 双江|