今天在对一个数据量比较小的数据存放问题上,苦恼了有十几分钟,然后就问了一下前辈。分享一下
存放数据到缓存中的主要依据是,看这些数据是否需要频繁的查询数据库,也就是这些数据是否是频繁的变动的。
如果是频繁的变动的,最好放在缓存中。在游戏中,一个人的操作保存下来是小数据,但是很多人的数据放在一块,那变动就很大了。
还有一点就是缓存容量的问题,这个我也问了一下,缓存容量应该是有限的,所以需要通过限制访问,比如说一个区爆满,就不让进了,应该就是数据量太大,对服务器造成了负担。
更新数据的时候,优先更新静态的数据,数据库中的数据先更新,才可以更新缓存中的数据。如果数据库更新失败,就会报错,这时候缓存中的数据就不会更新了。如果先更新缓存中的数据,数据库中的数据如果更新失败了,会造成数据混乱的情况,显示在客户端的不是真实的数据。用户下次进入游戏就会变化。
处理逻辑的时候,最常用的就是
async.waterfall ([
function(cb){.....},
function(cb){.....}
],function(err,info){
});
所有的逻辑放在这里面清晰可见,而且逻辑思路非常的清晰。这是自己的一个体会。
网友评论