美文网首页
游戏后端db选择

游戏后端db选择

作者: antsmallant | 来源:发表于2017-09-27 18:26 被阅读0次

存储是整个游戏后端架构中最重要的之一,以下是一种可用于全区全服,或者分区分服的一种做法。

大家普遍使用mysql,对于分区分服,基本上没问题,普通的单实例mysql可以胜任(合服可能是个例外?);

对于全区全服,可能就有问题了,单实例的mysql,目前各云平台,包括腾讯自研的,给出的iops普遍是最高2w+,

人数特别多的时候,基本上扛不住,即使使用了redis做优化,这时候仍然要使用mysql

1)为什么以要使用mongodb?

* 场景特别适合,目前服务器是把mysql当成kv存储的,用户间的数据没有关联;

* 如果用mysql,用户数据分散到多张表,一次load要读n张表,相当耗时,如果用户数据存成一个mongodb里的文档,那么可能只需要读一次;

* mongodb的性能不差,合理使用下,与mysql相当,甚至强过mysql;

* mongodb比较方便的做到高可能(replica set),可以方便的水平扩容(shard),水平扩容

2) mongodb怎么用?

用户数据就每人一个document存到mongodb,用户数据整体是一个大集合;

其他业务数据也存成各个集合;

要特别关注单doc大小限制(16MB),要先跟策划敲定各个用户数据的大小限制,比如有n封邮件,n个道具,n条流水;

3)运营流水数据怎么记?

* 我们是使用友商的方案的,使用hadoop来存数据?

4)排行榜

* 排行榜使用redis(单实例高可用)来实现,几千万人的排行榜是没啥问题的,以5000万人计,每人32byte的uid+8byte的分数,计40byte,5000w*40 = 2Gbyte;

相关文章

  • 游戏后端db选择

    存储是整个游戏后端架构中最重要的之一,以下是一种可用于全区全服,或者分区分服的一种做法。 大家普遍使用mysql,...

  • django的数据库设置

    django内建的数据库后端有: 'django.db.backends.postgresql_psycopg2'...

  • 在视图外使用Django会话

    本节中的示例直接从django.contrib.sessions.backends.db后端导入SessionSt...

  • 5 简阅项目 登录功能

    1.后端 1.创建数据库db_jianyue,并创建数据库表t_user 插入数据image 2.后端:新建一个新...

  • java游戏后端

    项目工程:https://github.com/yunzz/game有兴趣的大佬一起来开发? 1. queue 使...

  • docker 容器间的通信问题

    昨天遇到一个问题。 项目的前端后端DB分别发布在docker的三个容器中。前后端的容器公开到外网上了,通过外网IP...

  • 用户登录功能

    1.登录功能后端实现 1.1 创建数据库db_jianyue ,创建表t_userimage.png 自行添几个数...

  • airflow 1.10安装

    本次安装Airflow版本为1.10,其需要依赖Python3.6和DB,本次选择的DB为Mysql mysql安...

  • bootstrap ACE模板菜单改造

    一、菜单效果 二、前端相关 使用的sidebar-menu 插件 三、后端相关 可以DB配置菜单项 主要是根据角色...

  • 1.“简阅”——用户登录功能(1)

    1登录功能后端实现 1.1创建数据库db_jianyue,新建用户数据表t_user 1.2 IDEA中新建...

网友评论

      本文标题:游戏后端db选择

      本文链接:https://www.haomeiwen.com/subject/dwzuextx.html