緩存穿透颇蜡、緩存擊穿、緩存雪崩

緩存穿透

? ? ? ? 緩存穿透是指緩存服務(wù)器和數(shù)據(jù)庫(kù)中都沒(méi)有符合條件的數(shù)據(jù)辆亏,例如查找id<0的用戶风秤,由于該類用戶不存在所以緩存中沒(méi)有對(duì)應(yīng)數(shù)據(jù),每次請(qǐng)求進(jìn)來(lái)都會(huì)從數(shù)據(jù)庫(kù)中進(jìn)行一次查詢扮叨;這類請(qǐng)求可能是潛在的攻擊者發(fā)起的缤弦,當(dāng)請(qǐng)求量很大時(shí)會(huì)導(dǎo)致數(shù)據(jù)庫(kù)壓力過(guò)大。

解決方案:

一彻磁、緩存服務(wù)器中允許存空值:例如當(dāng)首次查詢id=-2的用戶時(shí)碍沐,在緩存服務(wù)器中將null作為value存入,此后查詢?cè)撚脩魰r(shí)直接將緩存服務(wù)器中的null返回衷蜓;應(yīng)當(dāng)注意的是累提,為了查詢結(jié)果的正確性,在必要時(shí)要對(duì)null值進(jìn)行更新磁浇,例如斋陪,假設(shè)此前查詢id=999的用戶并不存在,緩存服務(wù)器中保存了999:null的一條記錄置吓,但是隨著用戶的新增鳍贾,如果此后創(chuàng)建了id=999的用戶,就需要對(duì)緩存服務(wù)器中的這條記錄進(jìn)行更新交洗。

二骑科、BloomFilter:大部分情況下,緩存穿透是很多惡意請(qǐng)求引起的构拳,這些請(qǐng)求可能隨機(jī)生成查詢條件進(jìn)行查詢咆爽,這些查詢條件對(duì)應(yīng)的數(shù)據(jù)在緩存服務(wù)器和數(shù)據(jù)庫(kù)中都沒(méi)有梁棠,就容易引起緩存穿透;因此斗埂,我們可以將查詢的數(shù)據(jù)條件哈希到一個(gè)足夠大的布隆過(guò)濾器中符糊,請(qǐng)求會(huì)首先被布隆過(guò)濾器攔截,一定不存在的數(shù)據(jù)就直接攔截返回了呛凶,從而降低對(duì)數(shù)據(jù)庫(kù)的壓力男娄。

緩存擊穿

? ? ? ? 緩存擊穿是緩存服務(wù)器中沒(méi)有但是數(shù)據(jù)庫(kù)中有的數(shù)據(jù)(例如當(dāng)該條緩存過(guò)期時(shí)),如果大并發(fā)量請(qǐng)求進(jìn)來(lái)漾稀,在緩存服務(wù)器中沒(méi)有此條數(shù)據(jù)模闲,這些請(qǐng)求同時(shí)去數(shù)據(jù)庫(kù)中進(jìn)行查找,造成數(shù)據(jù)庫(kù)瞬間壓力增大崭捍。

解決方案:

一尸折、異步更新:通過(guò)定時(shí)任務(wù)在緩存服務(wù)器中的數(shù)據(jù)未過(guò)期時(shí)對(duì)其進(jìn)行更新。

二殷蛇、互斥鎖:當(dāng)Redis中根據(jù)key獲得的value值為空時(shí)实夹,先鎖上,然后從數(shù)據(jù)庫(kù)加載粒梦,加載完畢亮航,釋放鎖。若其他線程也在請(qǐng)求該key時(shí)匀们,發(fā)現(xiàn)獲取鎖失敗塞赂,則先阻塞;采用互斥鎖實(shí)際上就是將并行變成串行昼蛀,會(huì)降低系統(tǒng)吞吐量宴猾。

緩存雪崩

? ??????緩存雪崩是指緩存中大量緩存同時(shí)過(guò)期,而查詢數(shù)據(jù)量巨大叼旋,引起數(shù)據(jù)庫(kù)壓力過(guò)大甚至宕機(jī)仇哆。和緩存擊穿不同的是,緩存擊穿指并發(fā)查同一條數(shù)據(jù)夫植,緩存雪崩是不同數(shù)據(jù)都過(guò)期了讹剔,很多數(shù)據(jù)都查不到從而查數(shù)據(jù)庫(kù)。

解決方案:

一详民、為緩存數(shù)據(jù)設(shè)置不同的過(guò)期時(shí)間延欠。

二、緩存服務(wù)器集群部署:采用集群部署沈跨,避免緩存服務(wù)器單點(diǎn)故障由捎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市饿凛,隨后出現(xiàn)的幾起案子狞玛,更是在濱河造成了極大的恐慌软驰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件心肪,死亡現(xiàn)場(chǎng)離奇詭異锭亏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)硬鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門慧瘤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人固该,你說(shuō)我怎么就攤上這事锅减。” “怎么了蹬音?”我有些...
    開(kāi)封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵上煤,是天一觀的道長(zhǎng)休玩。 經(jīng)常有香客問(wèn)我著淆,道長(zhǎng),這世上最難降的妖魔是什么拴疤? 我笑而不...
    開(kāi)封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任永部,我火速辦了婚禮,結(jié)果婚禮上呐矾,老公的妹妹穿的比我還像新娘苔埋。我一直安慰自己,他們只是感情好蜒犯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布组橄。 她就那樣靜靜地躺著,像睡著了一般罚随。 火紅的嫁衣襯著肌膚如雪玉工。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天淘菩,我揣著相機(jī)與錄音遵班,去河邊找鬼。 笑死潮改,一個(gè)胖子當(dāng)著我的面吹牛狭郑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汇在,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼翰萨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了糕殉?” 一聲冷哼從身側(cè)響起缨历,我...
    開(kāi)封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤以蕴,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后辛孵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丛肮,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年魄缚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宝与。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冶匹,死狀恐怖习劫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚼隘,我是刑警寧澤诽里,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站飞蛹,受9級(jí)特大地震影響谤狡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卧檐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一墓懂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧霉囚,春花似錦捕仔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至盅粪,卻和暖如春钓葫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背湾揽。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工瓤逼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人库物。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓霸旗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親戚揭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诱告,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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