今天在對一個數(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ù)器造成了負(fù)擔(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){
});
所有的邏輯放在這里面清晰可見谆沃,而且邏輯思路非常的清晰。這是自己的一個體會仪芒。