Redis總結(jié)(二)緩存穿透挖垛、緩存擊穿痒钝、緩存雪崩

本篇文章主要介紹redis的緩存穿透秉颗、緩存擊穿及緩存雪崩造成的原因及解決方案

一、緩存穿透

概念:是指查詢一個數(shù)據(jù)庫一定不存在的數(shù)據(jù)

解釋:客戶端請求數(shù)據(jù)送矩,redis中沒有蚕甥,則去數(shù)據(jù)庫查詢發(fā)現(xiàn)也沒有,如果在用戶量大或者有人惡意請求則會一直穿過緩存去請求數(shù)據(jù)庫栋荸,對數(shù)據(jù)庫造成很大的壓力菇怀。

解決方式:

  1. 在接口層根據(jù)業(yè)務(wù)增加一些用戶鑒權(quán)校驗,非法參數(shù)請求校驗晌块,降低數(shù)據(jù)庫壓力爱沟,比如id小于0之類的
  2. 設(shè)置空值緩存,在緩存中取不到數(shù)據(jù)匆背,并且在數(shù)據(jù)庫中也取不到數(shù)據(jù)呼伸,也可以將key-value對寫為key-null,但是需要設(shè)置一定合理的緩存過期時間钝尸,防止正常情況無法使用
  3. 設(shè)置布隆過濾器括享,他的原理也很簡單就是利用高效的數(shù)據(jù)結(jié)構(gòu)和算法快速判斷出你這個Key是否在數(shù)據(jù)庫中存在,不存在你return就好了蝶怔,存在你就去查了DB刷新KV再return奶浦。

二兄墅、緩存擊穿

概念:對于一些設(shè)置了過期時間的key踢星,如果這些key可能會在某些時間點被超高并發(fā)地訪問,是一種非诚断蹋“熱點”的數(shù)據(jù)

解釋:緩存在某個時間點過期的時候沐悦,恰好在這個時間點對這個Key有大量的并發(fā)請求過來,這些請求發(fā)現(xiàn)緩存過期一般都會從后端DB加載數(shù)據(jù)并回設(shè)到緩存五督,這個時候大并發(fā)的請求可能會瞬間把后端DB壓垮藏否。

解決方式:

  1. 設(shè)置熱點數(shù)據(jù)永遠不過期。
  2. 加互斥鎖充包,如果緩存中有數(shù)據(jù)則查詢到直接返回副签,如果換成中不存在數(shù)據(jù)則加鎖讓獲取鎖的這個線程去讀取數(shù)據(jù),然后后續(xù)線程還是讀取緩存基矮。比如redis的setNx
  3. "提前"使用互斥鎖,在讀取時對比緩存時間如果快到了則進行加鎖淆储,更新時間及重新從數(shù)據(jù)庫拉去數(shù)據(jù)。

三家浇、緩存雪崩

概念:指緩存大量失效本砰,導致大量的請求都直接向數(shù)據(jù)庫獲取數(shù)據(jù),造成數(shù)據(jù)庫的壓力

解釋:緩存雪崩造成的原因可能是因為我們在設(shè)置緩存時大量緩存的過期時間設(shè)置的一致或緩存服務(wù)器宕機钢悲,導致同時過期点额,大量請求直接奔向數(shù)據(jù)庫

解決方式:

  1. 加鎖舔株,減低數(shù)據(jù)庫壓力,但是這樣的效率比較低
  2. 在設(shè)置redis過期時間時加上一個隨機數(shù)还棱,避免大批數(shù)據(jù)過期場景
  3. 部署分布式redis载慈,在一臺redis服務(wù)器故障時,立刻將請求轉(zhuǎn)移到另一臺
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珍手,一起剝皮案震驚了整個濱河市娃肿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌珠十,老刑警劉巖料扰,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異焙蹭,居然都是意外死亡晒杈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門孔厉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯钻,“玉大人,你說我怎么就攤上這事撰豺》喟悖” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵污桦,是天一觀的道長亩歹。 經(jīng)常有香客問我,道長凡橱,這世上最難降的妖魔是什么小作? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮稼钩,結(jié)果婚禮上顾稀,老公的妹妹穿的比我還像新娘。我一直安慰自己坝撑,他們只是感情好静秆,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巡李,像睡著了一般抚笔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上击儡,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天塔沃,我揣著相機與錄音,去河邊找鬼。 笑死蛀柴,一個胖子當著我的面吹牛螃概,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸽疾,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吊洼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了制肮?” 一聲冷哼從身側(cè)響起冒窍,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豺鼻,沒想到半個月后综液,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡儒飒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年谬莹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桩了。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡附帽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出井誉,到底是詐尸還是另有隱情蕉扮,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布颗圣,位于F島的核電站喳钟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欠啤。R本人自食惡果不足惜荚藻,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洁段。 院中可真熱鬧,春花似錦共郭、人聲如沸祠丝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽写半。三九已至,卻和暖如春尉咕,著一層夾襖步出監(jiān)牢的瞬間叠蝇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工年缎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悔捶,地道東北人铃慷。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蜕该,于是被迫代替她去往敵國和親犁柜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容