最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java?redis中緩存穿透?緩存擊穿?雪崩三種現(xiàn)象以及解決方法

 更新時(shí)間:2022年01月18日 17:06:58   作者:acx匿  
緩存穿透是指緩存和數(shù)據(jù)庫中都沒有的數(shù)據(jù),而用戶不斷發(fā)起請求,如發(fā)起為id為“-1”的數(shù)據(jù)或id為特別大不存在的數(shù)據(jù)。這時(shí)的用戶很可能是攻擊者,攻擊會(huì)導(dǎo)致數(shù)據(jù)庫壓力過大

前言

本文主要闡述redis中的三種現(xiàn)象

1.緩存穿透

2.緩存擊穿

3.雪崩現(xiàn)象

本文主要說明本人對三種情況的理解,如果需要知道redis基礎(chǔ)請查看其他博客,加油!

一、緩存穿透

理解:何為緩存穿透,先要了解穿透,這樣有助于區(qū)分穿透和擊穿,穿透就類似于傷害一點(diǎn)一點(diǎn)的累計(jì),最終打到穿透的目的,類似于射手,一下一下普通攻擊,最終殺死對方,先上圖

緩存穿透

先來描述一下緩存穿透的過程:

1.由于我們?nèi)?shù)據(jù)的原則是先查詢r(jià)edis上,如果redis上有數(shù)據(jù)那么我們就取redis,如果沒有則對數(shù)據(jù)庫進(jìn)行查詢

2.當(dāng)我們的應(yīng)用服務(wù)器壓力變大(例如我們雙十一進(jìn)行購物)

3.那么我們同時(shí)大量數(shù)據(jù)訪問redis,而redis中只有其中幾條數(shù)據(jù)的信息,那么我們就會(huì)對數(shù)據(jù)庫進(jìn)行大量的查詢(redis命中率降低)

4.導(dǎo)致數(shù)據(jù)庫崩潰

以上的過程就是緩存穿透

解決辦法:

1.對空值進(jìn)行緩存

2.設(shè)置黑(白)名單

3.采用布隆過濾器(布隆底層實(shí)際原理類似于優(yōu)化版的使用bitmap進(jìn)行緩存查詢)

二、緩存擊穿

理解:何為緩存擊穿,擊穿其實(shí)就是類似于爆發(fā)傷害,類似于高爆發(fā)的法師,一套技能瞬間殺死對方,上圖

緩存擊穿

先來描述一下緩存擊穿的過程:

1.由于我們?nèi)?shù)據(jù)的原則是先查詢r(jià)edis上,如果redis上有數(shù)據(jù)那么我們就取redis,如果沒有則對數(shù)據(jù)庫進(jìn)行查詢,擊穿的結(jié)果是redis還在正常運(yùn)行,mysql崩了

2.當(dāng)我們數(shù)據(jù)庫(mysql)訪問量瞬間增加(例如我們雙十一進(jìn)行搶制定的商品)

3.而此時(shí),我們的redis上相對應(yīng)的key突然過期,那么我們把查詢壓力全給mysql

4.導(dǎo)致數(shù)據(jù)庫崩潰

以上的過程就是緩存擊穿

解決辦法:

1.預(yù)先設(shè)置熱門數(shù)據(jù)(例如先緩存好制定商品的信息)

2.實(shí)施調(diào)整(人工延長key過期時(shí)間)

3.使用鎖(影響效率)

三、雪崩現(xiàn)象

理解:何為雪崩,顧名思義,就是一片雪花導(dǎo)致整個(gè)系統(tǒng)的崩盤,先上圖

雪崩

先來描述一下緩存擊穿的過程:

1.由于我們?nèi)?shù)據(jù)的原則是先查詢r(jià)edis上,如果redis上有數(shù)據(jù)那么我們就取redis,如果沒有則對數(shù)據(jù)庫進(jìn)行查詢

2.當(dāng)我們服務(wù)器壓力變大(例如雙十一購物)

3.而此時(shí),我們的redis上大量的key過期,導(dǎo)致數(shù)據(jù)庫壓力劇增,返回給服務(wù)器的效率變低

4.由于效率變低,導(dǎo)致我們r(jià)edis中緩存過多請求,導(dǎo)致redis崩潰

5.最終導(dǎo)致整個(gè)系統(tǒng)的崩盤

以上的過程就是雪崩

解決辦法:

1.構(gòu)建多級(jí)緩存(nginx緩存+redis緩存+其他緩存)

2.使用鎖或者隊(duì)列

3.設(shè)置過期標(biāo)志自動(dòng)更新

4.錯(cuò)開key的過期時(shí)間(建議3 4結(jié)合使用)

總結(jié)

1.redis妙用很多,需要在實(shí)際應(yīng)用場景體會(huì)

2.思想很重要,基礎(chǔ)也很重要

3.謝謝尚硅谷的老師

4.歡迎討論指出錯(cuò)誤

視頻教程鏈接

到此這篇關(guān)于詳解Java redis中緩存穿透 緩存擊穿 雪崩三種現(xiàn)象以及解決方法的文章就介紹到這了,更多相關(guān)Java redis 緩存穿透 緩存擊穿 雪崩內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基礎(chǔ)-Java的體系結(jié)構(gòu)

    Java基礎(chǔ)-Java的體系結(jié)構(gòu)

    這篇文章主要介紹了Java的體系結(jié)構(gòu),Java幾乎成為了“開源”的代名詞。第三方開源軟件和框架。如Tomcat、Struts,MyBatis,Spring等,下面我們來看看文章具體的內(nèi)容介紹吧
    2022-01-01
  • Spring中存取Bean的相關(guān)注解舉例詳解

    Spring中存取Bean的相關(guān)注解舉例詳解

    這篇文章主要給大家介紹了關(guān)于Spring中存取Bean的相關(guān)注解,在沒有使用注解獲取對象之前,我們需要在配置文件中通過添加bean來將對象存儲(chǔ)到Spring容器中,這對于我們來說是比較麻煩的,需要的朋友可以參考下
    2023-10-10
  • JAVA 多態(tài)操作----父類與子類轉(zhuǎn)換問題實(shí)例分析

    JAVA 多態(tài)操作----父類與子類轉(zhuǎn)換問題實(shí)例分析

    這篇文章主要介紹了JAVA 多態(tài)操作----父類與子類轉(zhuǎn)換問題,結(jié)合實(shí)例形式分析了JAVA 多態(tài)操作中父類與子類轉(zhuǎn)換問題相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • IDEA解決maven包沖突easypoi NoClassDefFoundError的問題

    IDEA解決maven包沖突easypoi NoClassDefFoundError的問題

    這篇文章主要介紹了IDEA解決maven包沖突easypoi NoClassDefFoundError的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java創(chuàng)建、識(shí)別條形碼和二維碼方法示例

    Java創(chuàng)建、識(shí)別條形碼和二維碼方法示例

    這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建、識(shí)別條形碼和二維碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中Mybatis分頁查詢的四種傳參方式

    Java中Mybatis分頁查詢的四種傳參方式

    這篇文章主要介紹了Java中Mybatis分頁查詢的四種傳參方式:順序傳參,@param傳參,自定義POJO類傳參,Map傳參,想詳細(xì)了解傳參方式的小伙伴可以詳細(xì)閱讀本文,有一定的而參考價(jià)值
    2023-03-03
  • SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼

    SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼

    這篇文章主要介紹了SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • java如何執(zhí)行bat腳本,并監(jiān)控執(zhí)行結(jié)果

    java如何執(zhí)行bat腳本,并監(jiān)控執(zhí)行結(jié)果

    這篇文章主要介紹了java如何執(zhí)行bat腳本,并監(jiān)控執(zhí)行結(jié)果問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot yml配置敏感信息加密的實(shí)現(xiàn)

    SpringBoot yml配置敏感信息加密的實(shí)現(xiàn)

    本文主要介紹了SpringBoot yml配置敏感信息加密的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • 強(qiáng)烈推薦這些提升代碼效率的IDEA使用技巧

    強(qiáng)烈推薦這些提升代碼效率的IDEA使用技巧

    在平常的開發(fā)中,發(fā)現(xiàn)一些同事對Idea 使用的不是很熟練,僅僅用來編輯,編譯,不能很好的發(fā)揮Idea 的神奇.整理了下我平常用的一些技巧,希望你能從中學(xué)習(xí)到一些.需要的朋友可以參考下
    2021-05-05

最新評(píng)論

桂阳县| 双柏县| 体育| 玉环县| 六枝特区| 溧阳市| 芜湖县| 海林市| 营口市| 仙居县| 景宁| 弥渡县| 靖西县| 商丘市| 长乐市| 当涂县| 崇文区| 清河县| 贡觉县| 崇仁县| 武强县| 新源县| 梧州市| 铁力市| 忻城县| 临江市| 喜德县| 南陵县| 苍梧县| 错那县| 桐乡市| 永登县| 肇东市| 达州市| 磴口县| 炉霍县| 金昌市| 贵南县| 铁力市| 海伦市| 绍兴市|