使用緩存的一點(diǎn)注意事項(xiàng)

這里的緩存指的是分布式緩存,而非應(yīng)用程序本身的內(nèi)存。

合理使用緩存,能把應(yīng)用的訪問速度大大的提升。

假設(shè)一個(gè)數(shù)據(jù)需要經(jīng)過復(fù)雜的運(yùn)算,從再從遙遠(yuǎn)的多個(gè)數(shù)據(jù)庫中查詢而得到,那么這個(gè)數(shù)據(jù)獲取的代價(jià)是比較昂貴的。

如果這個(gè)數(shù)據(jù)不經(jīng)常變化,而且讀的次數(shù)遠(yuǎn)大于更新的次數(shù),那么就可以把數(shù)據(jù)放到緩存中來,等待下次需要獲取這個(gè)數(shù)據(jù)的時(shí)候,直接從緩存中獲取,避免再次進(jìn)行復(fù)雜計(jì)算和遠(yuǎn)程獲取合并等操作帶來的耗時(shí)。

緩存的基本原理是 通過空間換取時(shí)間。

因?yàn)槭褂镁彺娴扔诎阎付ǖ臄?shù)據(jù)保存在多個(gè)地方,這里涉及到兩份數(shù)據(jù)之間如何做同步。

這里有兩個(gè)方案:

1.緩存產(chǎn)品提供接口來同步,訪問緩存提供的api來操作數(shù)據(jù),這些數(shù)據(jù)會(huì)同時(shí)保存在緩存和數(shù)據(jù)庫中,實(shí)現(xiàn)數(shù)據(jù)的同步,但是目前這樣的產(chǎn)品還是有一定的限制。

2.通過應(yīng)用的邏輯來同步,即手工同步。每次需要更新數(shù)據(jù)的時(shí)候,不僅僅要更新數(shù)據(jù)庫,同時(shí)要更新緩存,這些都由應(yīng)用來操作。


本文的正題:

應(yīng)用應(yīng)該統(tǒng)一規(guī)劃對(duì)數(shù)據(jù)庫的修改,避免在修改了數(shù)據(jù)庫涉及緩存的數(shù)據(jù)時(shí),沒有同步數(shù)據(jù)的修改到緩存。

因?yàn)檎5膽?yīng)用聯(lián)機(jī)邏輯,在使用到緩存的地方一般都會(huì)注意到緩存和數(shù)據(jù)庫數(shù)據(jù)的同步修改。但是由于項(xiàng)目過大,在批量層面往往存在一些操作會(huì)對(duì)緩存涉及的數(shù)據(jù)進(jìn)行修改,而這里的修改往往會(huì)把緩存的同步給忽略,從而導(dǎo)致問題的發(fā)生。

這是筆者在做項(xiàng)目時(shí)的一點(diǎn)經(jīng)驗(yàn),因?yàn)槭褂镁彺娴拇螖?shù)不多,經(jīng)驗(yàn)有限,在于紀(jì)錄下來,省己警人。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,996評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 需要原文的可以留下郵箱我給你發(fā),這里的文章少了很多圖,懶得網(wǎng)上粘啦 1數(shù)據(jù)庫基礎(chǔ) 1.1數(shù)據(jù)庫定義 1)數(shù)據(jù)庫(D...
    極簡純粹_閱讀 7,897評(píng)論 0 46
  • Android http://stormzhang.github.io/android/2014/07/07/le...
    freener閱讀 175評(píng)論 0 1
  • 今天。2017年6月27日~ 星期二. 太陽好像多九個(gè)一樣熱辣無比!慵懶嗜睡的我睡到了十一點(diǎn)、現(xiàn)代人睡醒第一件事就...
    _Amy3閱讀 310評(píng)論 0 0

友情鏈接更多精彩內(nèi)容