谈谈redis缓存击穿透和缓存击穿的区别,雪崩效应
談談redis緩存擊穿透和緩存擊穿的區(qū)別,雪崩效應
面試經(jīng)歷
在很長的一段時間里,我以為緩存擊穿和緩存穿透是一個東西,直到最近去騰訊面試,面試官問我緩存擊穿和穿透的區(qū)別;我回答它倆是一樣的,面試官馬上抬起頭用他那細長的單眼皮眼睛瞪著我說:“你確定嗎?”,最后面試提醒我,既然有不同的名字,那他們肯定就是不一樣的,也就是說緩存擊穿和緩存穿透不是一個東西;
那么今天我們就看看這倆玩意的區(qū)別,以及它們引發(fā)的后果;
在項目中加入緩存
一般情況下,我們會把熱點數(shù)據(jù)放到緩存中,比如常用的字典、用戶信息、訂單詳情等等;也就是說,當項目啟動后,先將熱點數(shù)據(jù)加載到redis中,以后需要數(shù)據(jù)時就不用每次都去數(shù)據(jù)庫查詢了,這樣一來,既減少了數(shù)據(jù)庫的壓力,也提升了訪問速度,可謂是一舉多得呀!
緩存穿透
緩存穿透是指緩存和數(shù)據(jù)庫中都沒有的數(shù)據(jù),而用戶不斷發(fā)起請求,如發(fā)起為id為“-1”的數(shù)據(jù)或id為特別大不存在的數(shù)據(jù)。這時的用戶很可能是攻擊者,攻擊會導致數(shù)據(jù)庫壓力過大。
解決方案:
緩存擊穿
緩存擊穿指的是大量的key在同一時間過期,但是又有大量的請求需要用到這些已經(jīng)過期的key,那么程序在redis找不到數(shù)據(jù),就會去數(shù)據(jù)庫里查詢,數(shù)據(jù)庫處理大量的請求的同時導致壓力瞬間增大,造成壓力過大,甚至導致崩潰;
解決方案
穿透和擊穿的區(qū)別
關于穿透和擊穿的區(qū)別上面已經(jīng)介紹的很清楚了,這里在做個總結(jié)
- 穿透 :大量請求了緩存和數(shù)據(jù)庫中都沒有的數(shù)據(jù),每次都查詢數(shù)據(jù)庫,導致數(shù)據(jù)庫壓力過大
- 擊穿 : 大量key在同一時間過期,導致所有請求都達到數(shù)據(jù)庫,導致數(shù)據(jù)庫壓力過大
雪崩效應
雪崩效應指的是由穿透和擊穿引起的數(shù)據(jù)庫壓力過大,最后導致整個數(shù)據(jù)庫宕機,一旦數(shù)據(jù)庫崩了,它所帶來的連鎖反應是可怕的,數(shù)據(jù)庫不可用的情況下你的服務器也無法使用;這就是雪崩效應;
完
Tags:擊穿?緩存?雪崩?談談?效應?
衣錦夜行 電子書下載_pdf下載_
總結(jié)
以上是生活随笔為你收集整理的谈谈redis缓存击穿透和缓存击穿的区别,雪崩效应的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#开发Android应用实战——使用M
- 下一篇: 诺基亚或将成为中国手机的威胁