<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          高并發(fā)下緩存失效問題及解決方案

          共 697字,需瀏覽 2分鐘

           ·

          2021-03-05 14:13

          0x01: 緩存穿透

          當(dāng)查詢一個(gè)不存在的數(shù)據(jù),此時(shí)緩存是不命中的,就會(huì)去查詢 db,這將導(dǎo)致每次查詢這個(gè)不存在的數(shù)據(jù)都要去訪問 db,緩存就沒有意義了。如果不懷好意的人利用不存在的數(shù)據(jù)進(jìn)行攻擊,可能導(dǎo)致數(shù)據(jù)庫崩潰。

          解決方案:

          • 查詢到的不存在的數(shù)據(jù)也放入緩存,可以存為 null,并加入短暫的過期時(shí)間(但如果別人每次都請求不同的 key,會(huì)導(dǎo)致大量無用 key 存在 redis 中)

          • 加個(gè)過濾器(比如布隆過濾器),過濾不存在的 key


          0x02: 緩存雪崩

          系統(tǒng)中設(shè)置某個(gè) key 時(shí),使用了相同的過期時(shí)間,導(dǎo)致緩存在同一時(shí)間失效,請求涌入 db,導(dǎo)致數(shù)據(jù)庫壓力過重雪崩。

          解決方案:

          • 在原有的失效時(shí)間基礎(chǔ)上加上一個(gè)隨機(jī)值,比如 1~5 分鐘,這樣每一個(gè)緩存過期時(shí)間的重復(fù)率就會(huì)變低,就很難引起集體失效的事件。


          0x03: 緩存擊穿

          對于一些設(shè)置了過期時(shí)間的 key,如果這些 key 可能會(huì)在某些時(shí)間點(diǎn)被超高并發(fā)地訪問,是一種非?!盁狳c(diǎn)”的數(shù)據(jù)。如果這個(gè) key 在大量請求同時(shí)進(jìn)來前正好失效,那么所有對這個(gè) key 的數(shù)據(jù)查詢都落到 db,我們稱為緩存擊穿。

          解決方案:

          • 加鎖。大量并發(fā)只讓一個(gè)去查,其他人等待,查到以后釋放鎖,其他人獲取到鎖,先查緩存,就會(huì)有數(shù)據(jù),不用去db

          • 設(shè)置熱點(diǎn)數(shù)據(jù)永不過期

          • 在 redis、db 中間做一個(gè)二級緩存

          喜歡,在看


          瀏覽 27
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色操逼小视频 | 国产黄色电影在线免费观看 | 999欠欠欠兔费精品产 | 蜜芽无码AV | 北条麻妃黄色视频免费播放 |