您的位置:首页 > 其它

游戏数据存储探讨

2015-10-14 18:14 169 查看
前提:分区分服的,并且各区数据不互通,一个区的注册数在1kw以内的,不需要特别考虑,老实的用mysql存储,redis作缓存即可解决,个别热点作特殊优化。以下针对大规模的全区全服游戏,注册数通常在1e以上,pcu为50w左右。

1. 纯粹用redis来存?

并不可行,目前没有多成熟的运维方案,没法保证redis百分百数据可靠,仍然需要使用mysql来存,redis作快速缓存,以及一些数据结构上的支持,比如排行榜(用sortedset)等。redis单实例使用不够运营标准,有一些集群方案,如twemproxy,codis,可做到高可用,透明的扩容,但需要仔细研究方案的弱点。

redis有一些坑:

云风:谈谈陌陌争霸在数据库方面踩过的坑( Redis 篇)

云风:谈谈陌陌争霸在数据库方面踩过的坑(排行榜篇)

2.mysql分库分表

主要考虑两种方案:1. 多个单实例的mysql组成的存储,要分库分表去存,按某些id去sharding,数据存入多个实例;2.使用类似于spider的方案,在mysql的存储这一层就支持多机存储,自动的按指定的id作sharding,这种往往要自己定制(比如tencent的tspider),否则会有各种问题,比如(自增键不支持)

3.mongodb?

坑比较多,多用于作为流水日志的存储。

有一些坑:

云风:谈谈陌陌争霸在数据库方面踩过的坑(芒果篇)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: