1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢(xún)
      選擇下列產(chǎn)品馬上在線(xiàn)溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      redis緩存穿透的解決方法-創(chuàng)新互聯(lián)

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

      站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到大姚網(wǎng)站設(shè)計(jì)與大姚網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋大姚地區(qū)。

      緩存技術(shù)可以用來(lái)減輕數(shù)據(jù)庫(kù)的壓力,提升訪問(wèn)效率。目前在企業(yè)項(xiàng)目中對(duì)緩存也是越來(lái)越重視。但是緩存不是說(shuō)隨隨便便加入項(xiàng)目就可以了。將緩存整合到項(xiàng)目中,這才是第一步。而緩存帶來(lái)的穿透問(wèn)題,進(jìn)而導(dǎo)致的雪蹦問(wèn)題都是我們迫切需要解決的問(wèn)題。本篇文章將我平時(shí)項(xiàng)目中的解決方案分享給大家,以供參考。

      一、緩存穿透的原理

      緩存的正常使用如圖:

      redis緩存穿透的解決方法

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

      1、先從緩存中取數(shù)據(jù),如果能取到,則直接返回?cái)?shù)據(jù)給用戶(hù)。這樣不用訪問(wèn)數(shù)據(jù)庫(kù),減輕數(shù)據(jù)庫(kù)的壓力。

      2、如果緩存中沒(méi)有數(shù)據(jù),就會(huì)訪問(wèn)數(shù)據(jù)庫(kù)。

      這里面就會(huì)存在一個(gè)BUG,如圖:

      redis緩存穿透的解決方法

      如圖,緩存就像是數(shù)據(jù)庫(kù)的一道防火墻,將請(qǐng)求比較頻繁的數(shù)據(jù)放到緩存中,從而減輕數(shù)據(jù)庫(kù)的壓力。 但是如果有人惡意攻擊,那就很輕松的穿透你的緩存,將所有的壓力都給數(shù)據(jù)庫(kù)。比如上圖,你緩存的key都是正整數(shù),但是我偏偏使用負(fù)數(shù)作為key訪問(wèn)你的緩存,這樣就會(huì)導(dǎo)致穿透緩存,將壓力直接給數(shù)據(jù)庫(kù)。

      二、導(dǎo)致緩存穿透的原因

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

      1、惡意攻擊,猜測(cè)你的key命名方式,然后估計(jì)使用一個(gè)你緩存中不會(huì)有的key進(jìn)行訪問(wèn)。

      2、第一次數(shù)據(jù)訪問(wèn),這時(shí)緩存中還沒(méi)有數(shù)據(jù),則并發(fā)場(chǎng)景下,所有的請(qǐng)求都會(huì)壓到數(shù)據(jù)庫(kù)。

      3、數(shù)據(jù)庫(kù)的數(shù)據(jù)也是空,這樣即使訪問(wèn)了數(shù)據(jù)庫(kù),也是獲取不到數(shù)據(jù),那么緩存中肯定也沒(méi)有對(duì)應(yīng)的數(shù)據(jù)。這樣也會(huì)導(dǎo)致穿透。

      三、解決緩存穿透

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

      redis緩存穿透的解決方法

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

      • 1、再web服務(wù)器啟動(dòng)時(shí),提前將有可能被頻繁并發(fā)訪問(wèn)的數(shù)據(jù)寫(xiě)入緩存。—這樣就規(guī)避大量的請(qǐng)求在第3步出現(xiàn)排隊(duì)阻塞。

      • 2、規(guī)范key的命名,并且統(tǒng)一緩存查詢(xún)和寫(xiě)入的入口。這樣,在入口處,對(duì)key的規(guī)范進(jìn)行檢測(cè)。–這樣保存惡意的key被攔截。

      • 3、Synchronized雙重檢測(cè)機(jī)制,這時(shí)我們就需要使用同步(Synchronized)機(jī)制,在同步代碼塊前查詢(xún)一下緩存是否存在對(duì)應(yīng)的key,然后同步代碼塊里面再次查詢(xún)緩存里是否有要查詢(xún)的key。  這樣“雙重檢測(cè)”的目的,還是避免并發(fā)場(chǎng)景下導(dǎo)致的沒(méi)有意義的數(shù)據(jù)庫(kù)的訪問(wèn)(也是一種嚴(yán)格避免穿透的方案)。

        這一步會(huì)導(dǎo)致排隊(duì),但是第一步中我們說(shuō)過(guò),為了避免大量的排隊(duì),可以提前將可以預(yù)知的大量請(qǐng)求提前寫(xiě)入緩存。

      • 4、不管數(shù)據(jù)庫(kù)中是否有數(shù)據(jù),都在緩存中保存對(duì)應(yīng)的key,值為空就行。–這樣是為了避免數(shù)據(jù)庫(kù)中沒(méi)有這個(gè)數(shù)據(jù),導(dǎo)致的平凡穿透緩存對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。

      • 5、第4步中的空值如果太多,也會(huì)導(dǎo)致內(nèi)存耗盡。導(dǎo)致不必要的內(nèi)存消耗。這樣就要定期的清理空值的key。避免內(nèi)存被惡意占滿(mǎn)。導(dǎo)致正常的功能不能緩存數(shù)據(jù)。

      以上是redis緩存穿透的解決方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!


      本文名稱(chēng):redis緩存穿透的解決方法-創(chuàng)新互聯(lián)
      轉(zhuǎn)載源于:http://www.ef60e0e.cn/article/gjdgi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        余姚市| 麦盖提县| 玛曲县| 黎平县| 仲巴县| 五莲县| 陕西省| 桂东县| 河西区| 长汀县| 福建省| 若尔盖县| 吴忠市| 秦安县| 兴城市| 南投县| 名山县| 东光县| 防城港市| 集安市| 罗山县| 都匀市| 千阳县| 平利县| 岚皋县| 肇庆市| 农安县| 团风县| 甘肃省| 古田县| 黄龙县| 白沙| 甘孜县| 巩留县| 黄骅市| 宜宾县| 灵武市| 农安县| 漳平市| 湄潭县| 集安市|