国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 使用緩存的經驗?

使用緩存的經驗?

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-09-19 16:30:08 1663576208

  不合理使用緩存非但不能提高系統(tǒng)的性能,還會成為系統(tǒng)的累贅,甚至風險。

  1、頻繁修改的數據

  如果緩存中保存的是頻繁修改的數據,就會出現數據寫入緩存后,應用還來不及讀取緩存,數據就已經失效,徒增系統(tǒng)負擔。一般來說,數據的讀寫比在2:1(寫入一次緩存,在數據更新前至少讀取兩次)以上,緩存才有意義。

  2、沒有熱點的訪問

  如果應用系統(tǒng)訪問數據沒有熱點,不遵循二八定律,那么緩存就沒有意義。

使用緩存的經驗?

  3、數據不一致與臟讀

  一般會對緩存的數據設置失效時間,一旦超過失效時間,就要從數據庫中重新加載。因此要容忍一定時間的數據不一致,如賣家已經編輯了商品屬性,但是需要過一段時間才能被買家看到。還有一種策略是數據更新立即更新緩存,不過這也會帶來更多系統(tǒng)開銷和事務一致性問題。

  4、緩存可用性

  緩存會承擔大部分數據庫訪問壓力,數據庫已經習慣了有緩存的日子,所以當緩存服務崩潰時,數據庫會因為完全不能承受如此大壓力而宕機,導致網站不可用。這種情況被稱作緩存雪崩,發(fā)生這種故障,甚至不能簡單地重啟緩存服務器和數據庫服務器來恢復。

  實踐中,有的網站通過緩存熱備份等手段提高緩存可用性:當某臺緩存服務器宕機時,將緩存訪問切換到熱備服務器上。但這種設計有違緩存的初衷,緩存根本就不應該當做一個可靠的數據源來使用。

  通過分布式緩存服務器集群,將緩存數據分布到集群多臺服務器上可在一定程度上改善緩存的可用性。當一臺緩存服務器宕機時,只有部分緩存數據丟失,重新從數據庫加載這部分數據不會產生很大的影響。

  5、緩存預熱warm up

  緩存中存放的是熱點數據,熱點數據又是緩存系統(tǒng)利用LRU(最近最久未用算法)對不斷訪問的數據篩選淘汰出來,這個過程需要花費較長的時間。新系統(tǒng)的緩存系統(tǒng)如果沒有任何數據,在重建緩存數據的過程中,系統(tǒng)的性能和數據庫負載都不太好,那么最好在緩存系統(tǒng)啟動時就把熱點數據加載好,這個緩存預加載手段叫緩存預熱。對于一些元數據如城市地名列表、類目信息,可以在啟動時加載數據庫中全部數據到緩存進行預熱。

  6、避免緩存穿透

  如果因為不恰當的業(yè)務、或者惡意攻擊持續(xù)高并發(fā)地請求某個不存在的數據,由于緩存沒有保存該數據,所有的請求都會落到數據庫上,會對數據庫造成壓力,甚至崩潰。一個簡單的對策是將不存在的數據也緩存起來(其value為null)。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT