redis中雪崩和穿透是什么意思

小編給大家分享一下redis中雪崩和穿透是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供任丘網(wǎng)站建設(shè)、任丘做網(wǎng)站、任丘網(wǎng)站設(shè)計(jì)、任丘網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、任丘企業(yè)網(wǎng)站模板建站服務(wù),十多年任丘做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

緩存雪崩

對(duì)于系統(tǒng) A,假設(shè)每天高峰期每秒 5000 個(gè)請(qǐng)求,本來緩存在高峰期可以扛住每秒 4000 個(gè)請(qǐng)求,但是緩存機(jī)器意外發(fā)生了全盤宕機(jī)。緩存掛了,此時(shí) 1 秒 5000 個(gè)請(qǐng)求全部落數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)必然扛不住,它會(huì)報(bào)一下警,然后就掛了。此時(shí),如果沒用什么特別的方案來處理這個(gè)故障,DBA 很著急,重啟數(shù)據(jù)庫(kù),但是數(shù)據(jù)庫(kù)立馬又被新的流量給打死了。

這就是緩存雪崩。

redis中雪崩和穿透是什么意思

大約在 3 年前,國(guó)內(nèi)比較知名的一個(gè)互聯(lián)網(wǎng)公司,曾因?yàn)榫彺媸鹿剩瑢?dǎo)致雪崩,后臺(tái)系統(tǒng)全部崩潰,事故從當(dāng)天下午持續(xù)到晚上凌晨 3~4 點(diǎn),公司損失了幾千萬。

緩存雪崩的事前事中事后的解決方案如下。

  • 事前:redis 高可用,主從+哨兵,redis cluster,避免全盤崩潰。

  • 事中:本地 ehcache 緩存 + hystrix 限流&降級(jí),避免 MySQL 被打死。

  • 事后:redis 持久化,一旦重啟,自動(dòng)從磁盤上加載數(shù)據(jù),快速恢復(fù)緩存數(shù)據(jù)。

redis中雪崩和穿透是什么意思

用戶發(fā)送一個(gè)請(qǐng)求,系統(tǒng) A 收到請(qǐng)求后,先查本地 ehcache 緩存,如果沒查到再查 redis。如果 ehcache 和 redis 都沒有,再查數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)中的結(jié)果,寫入 ehcache 和 redis 中。

限流組件,可以設(shè)置每秒的請(qǐng)求,有多少能通過組件,剩余的未通過的請(qǐng)求,怎么辦?走降級(jí)!可以返回一些默認(rèn)的值,或者友情提示,或者空白的值。

好處:

  • 數(shù)據(jù)庫(kù)絕對(duì)不會(huì)死,限流組件確保了每秒只有多少個(gè)請(qǐng)求能通過。

  • 只要數(shù)據(jù)庫(kù)不死,就是說,對(duì)用戶來說,2/5 的請(qǐng)求都是可以被處理的。

  • 只要有 2/5 的請(qǐng)求可以被處理,就意味著你的系統(tǒng)沒死,對(duì)用戶來說,可能就是點(diǎn)擊幾次刷不出來頁面,但是多點(diǎn)幾次,就可以刷出來一次。

緩存穿透

對(duì)于系統(tǒng)A,假設(shè)一秒 5000 個(gè)請(qǐng)求,結(jié)果其中 4000 個(gè)請(qǐng)求是黑客發(fā)出的惡意攻擊。

黑客發(fā)出的那 4000 個(gè)攻擊,緩存中查不到,每次你去數(shù)據(jù)庫(kù)里查,也查不到。

舉個(gè)栗子。數(shù)據(jù)庫(kù) id 是從 1 開始的,結(jié)果黑客發(fā)過來的請(qǐng)求 id 全部都是負(fù)數(shù)。這樣的話,緩存中不會(huì)有,請(qǐng)求每次都“視緩存于無物”,直接查詢數(shù)據(jù)庫(kù)。這種惡意攻擊場(chǎng)景的緩存穿透就會(huì)直接把數(shù)據(jù)庫(kù)給打死。

redis中雪崩和穿透是什么意思

解決方式很簡(jiǎn)單,每次系統(tǒng) A 從數(shù)據(jù)庫(kù)中只要沒查到,就寫一個(gè)空值到緩存里去,比如 set -999 UNKNOWN。這樣的話,下次便能走緩存了。

以上是“redis中雪崩和穿透是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:redis中雪崩和穿透是什么意思
文章轉(zhuǎn)載:http://bm7419.com/article32/jcgosc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、品牌網(wǎng)站建設(shè)服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站排名、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化