游戏架构的一点思考

目前我们的游戏一直采用mysql做为数据的最终存储方式,但我们也知道这种关系型数据库对于游戏来说根本就用不着,而且很多时候还是负担,所以一般游戏都会采用key-value的方式在内存中存储游戏数据,由后台线程或进程回写数据到mysql,我想这是大家普遍所采用的方式,其实为什么我们为什么不能直接把在内存中的热点数据保存到磁盘呢?从而省去异步回写这一关,当然对于不断膨胀的数据不可能在内存中存尽,一般内存存放的都是热点数据,那我们只需要在热点数据失效的时候把热点数据按一定规则保存到文件系统即可,这时有人会问题mysql这种关系数据库保存下来的数据不是更好,直观,同时在做运营分析时我们也需要这种直观的数据,其实对于这点我们应该把游戏数据和运营数据从二个层面来分析,虽然有时这二个层面的数据大部分会有一种重叠,但我们仔细来看,这二种类型的数据的要求是不同的,对于游戏数据要求是不可丢失,要求能快速命中,快速操作,能快速方便的加载到内存等特性,对于数据的直观性来其实必不是那么重要,那么我们其实是不必要考虑把数据存放在mysql这为关系型数据库中,那最能满足以上特性的就是直接从内存把数据dump出来保存,不仅保存方便,加载也快,而且不易发生错误,而对于运营数据而言要求是对于最终分析的结果不会受影响,至于中间发生个别的数据没有保存到位其实不影响全局分析的,所以这类数据我们就更加好操作了,直接打log文件,最后在一个时间点上汇总分析入库就好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值