緩存--什么時候需要它?

今天在對一個數(shù)據(jù)量比較小的數(shù)據(jù)存放問題上,苦惱了有十幾分鐘,然后就問了一下前輩。分享一下

存放數(shù)據(jù)到緩存中的主要依據(jù)是,看這些數(shù)據(jù)是否需要頻繁的查詢數(shù)據(jù)庫,也就是這些數(shù)據(jù)是否是頻繁的變動的。

如果是頻繁的變動的,最好放在緩存中。在游戲中,一個人的操作保存下來是小數(shù)據(jù),但是很多人的數(shù)據(jù)放在一塊,那變動就很大了。

還有一點就是緩存容量的問題,這個我也問了一下,緩存容量應(yīng)該是有限的,所以需要通過限制訪問,比如說一個區(qū)爆滿,就不讓進了,應(yīng)該就是數(shù)據(jù)量太大,對服務(wù)器造成了負擔(dān)。

更新數(shù)據(jù)的時候,優(yōu)先更新靜態(tài)的數(shù)據(jù),數(shù)據(jù)庫中的數(shù)據(jù)先更新,才可以更新緩存中的數(shù)據(jù)。如果數(shù)據(jù)庫更新失敗,就會報錯,這時候緩存中的數(shù)據(jù)就不會更新了。如果先更新緩存中的數(shù)據(jù),數(shù)據(jù)庫中的數(shù)據(jù)如果更新失敗了,會造成數(shù)據(jù)混亂的情況,顯示在客戶端的不是真實的數(shù)據(jù)。用戶下次進入游戲就會變化。

處理邏輯的時候,最常用的就是

async.waterfall ([

? ? ? ? ? function(cb){.....},

? ? ? ? ? function(cb){.....}

],function(err,info){

});

所有的邏輯放在這里面清晰可見,而且邏輯思路非常的清晰。這是自己的一個體會。


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

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

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