bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

redis緩存穿透的解決方法

這篇文章主要介紹redis緩存穿透的解決方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在萊山等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站建設、網站建設 網站設計制作按需定制設計,公司網站建設,企業網站建設,成都品牌網站建設,成都全網營銷,成都外貿網站建設,萊山網站建設費用合理。

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

一、緩存穿透的原理

緩存的正常使用如圖:

redis緩存穿透的解決方法

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

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

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

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

redis緩存穿透的解決方法

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

二、導致緩存穿透的原因

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

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

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

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

三、解決緩存穿透

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

redis緩存穿透的解決方法

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

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

  • 2、規范key的命名,并且統一緩存查詢和寫入的入口。這樣,在入口處,對key的規范進行檢測。–這樣保存惡意的key被攔截。

  • 3、Synchronized雙重檢測機制,這時我們就需要使用同步(Synchronized)機制,在同步代碼塊前查詢一下緩存是否存在對應的key,然后同步代碼塊里面再次查詢緩存里是否有要查詢的key。  這樣“雙重檢測”的目的,還是避免并發場景下導致的沒有意義的數據庫的訪問(也是一種嚴格避免穿透的方案)。

    這一步會導致排隊,但是第一步中我們說過,為了避免大量的排隊,可以提前將可以預知的大量請求提前寫入緩存。

  • 4、不管數據庫中是否有數據,都在緩存中保存對應的key,值為空就行。–這樣是為了避免數據庫中沒有這個數據,導致的平凡穿透緩存對數據庫進行訪問。

  • 5、第4步中的空值如果太多,也會導致內存耗盡。導致不必要的內存消耗。這樣就要定期的清理空值的key。避免內存被惡意占滿。導致正常的功能不能緩存數據。

以上是redis緩存穿透的解決方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!

當前名稱:redis緩存穿透的解決方法
分享URL:http://vcdvsql.cn/article2/pcodoc.html

成都網站建設公司_創新互聯,為您提供商城網站建站公司網站維護網站策劃網站改版小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設