redis(十三:緩存異常)

三個常見的緩存異常就斤,分別是緩存雪崩悍募、緩存擊穿和緩存穿透蘑辑。

緩存雪崩
緩存雪崩造成的結果是:數據庫壓力大
原因有兩點:
原因一:緩存中有大量數據同時過期,且次數大量并發(fā)請求
方案
發(fā)生雪崩前:避免給大量的數據設置相同的過期時間坠宴,過期時間增加一個較小的隨機數(例如洋魂,隨機增加 1~3 分鐘)
發(fā)生雪崩時:(減少請求數目,數據庫的壓力就沒有那么大了)
服務降級---------非核心業(yè)務數據(返回固定值:預定義信息喜鼓、空值或是錯誤信息)副砍;
核心業(yè)務數據 (仍然允許查詢緩存,如果緩存缺失庄岖,也可以繼續(xù)通過數據庫讀然眙帷) 。

原因二:Redis 實例發(fā)生了宕機
方案
Redis還未宕機:構建 Redis 緩存高可靠集群隅忿;
Redis已經宕機:采用服務熔斷或請求限流機制心剥;
前置準備:監(jiān)測 Redis 緩存所在機器和數據庫所在機器的負載指標,例如每秒請求數背桐、CPU 利用率优烧、內存利用率等。
如果我們發(fā)現(xiàn) Redis 緩存實例宕機了链峭,而數據庫所在機器的負載壓力突然增加畦娄,此時,就發(fā)生緩存雪崩了弊仪。


緩存擊穿
熱點數據在緩存中失效熙卡,訪問該數據的大量請求,對后端數據庫找出極大壓力
方案:對于訪問特別頻繁的熱點數據励饵,不設置過期時間


緩存穿透
要訪問的數據既不在 Redis 緩存中驳癌,也不在數據庫中。緩存如同擺設曲横,也出現(xiàn)了出現(xiàn)了不必要的IO和數據庫請求喂柒。
原因有兩點:
原因一:業(yè)務層誤操作不瓶。(緩存中的數據和數據庫中的數據被誤刪除了,所以緩存和數據庫中都沒有數據)
原因二:惡意攻擊灾杰。
方案
1蚊丐,緩存空值或缺省值。
2艳吠,使用布隆過濾器快速判斷數據是否存在
3麦备,請求入口檢測(常用,一個token碼識別是否程序支持用戶昭娩。惡意請求時直接把該用戶拉入黑名單)

補充
布隆過濾器可以放在緩存和數據庫的最前面:把Redis當作布隆過濾器時凛篙,當用戶產生業(yè)務數據寫入緩存和數據庫后,同時也寫入布隆過濾器栏渺,之后當用戶訪問自己的業(yè)務數據時呛梆,先檢查布隆過濾器,如果過濾器不存在磕诊,就不需要查詢緩存和數據庫了填物,可以同時降低緩存和數據庫的壓力。
Redis布隆過濾器是使用String類型實現(xiàn)的霎终,存儲的方式是一個bigkey滞磺,建議使用時單獨部署一個實例,專門存放布隆過濾器的數據莱褒,不要和業(yè)務數據混用击困,否則在集群環(huán)境下,數據遷移時會導致Redis阻塞問題广凸。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末阅茶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炮障,更是在濱河造成了極大的恐慌目派,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胁赢,死亡現(xiàn)場離奇詭異企蹭,居然都是意外死亡,警方通過查閱死者的電腦和手機智末,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門谅摄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人系馆,你說我怎么就攤上這事送漠。” “怎么了由蘑?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵闽寡,是天一觀的道長代兵。 經常有香客問我,道長爷狈,這世上最難降的妖魔是什么植影? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮涎永,結果婚禮上思币,老公的妹妹穿的比我還像新娘。我一直安慰自己羡微,他們只是感情好谷饿,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妈倔,像睡著了一般博投。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上启涯,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天贬堵,我揣著相機與錄音,去河邊找鬼结洼。 笑死,一個胖子當著我的面吹牛叉跛,可吹牛的內容都是我干的松忍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼筷厘,長吁一口氣:“原來是場噩夢啊……” “哼鸣峭!你這毒婦竟也來了?” 一聲冷哼從身側響起酥艳,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤摊溶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后充石,有當地人在樹林里發(fā)現(xiàn)了一具尸體莫换,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年骤铃,在試婚紗的時候發(fā)現(xiàn)自己被綠了拉岁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡惰爬,死狀恐怖喊暖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情撕瞧,我是刑警寧澤陵叽,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布狞尔,位于F島的核電站,受9級特大地震影響巩掺,放射性物質發(fā)生泄漏沪么。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一锌半、第九天 我趴在偏房一處隱蔽的房頂上張望禽车。 院中可真熱鬧,春花似錦刊殉、人聲如沸殉摔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逸月。三九已至,卻和暖如春遍膜,著一層夾襖步出監(jiān)牢的瞬間碗硬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工瓢颅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恩尾,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓挽懦,卻偏偏與公主長得像翰意,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子信柿,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容