游戏数据存储探讨
2015-10-14 18:14
169 查看
前提:分区分服的,并且各区数据不互通,一个区的注册数在1kw以内的,不需要特别考虑,老实的用mysql存储,redis作缓存即可解决,个别热点作特殊优化。以下针对大规模的全区全服游戏,注册数通常在1e以上,pcu为50w左右。
redis有一些坑:
云风:谈谈陌陌争霸在数据库方面踩过的坑( Redis 篇)
云风:谈谈陌陌争霸在数据库方面踩过的坑(排行榜篇)
有一些坑:
云风:谈谈陌陌争霸在数据库方面踩过的坑(芒果篇)
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?
坑比较多,多用于作为流水日志的存储。有一些坑:
云风:谈谈陌陌争霸在数据库方面踩过的坑(芒果篇)
相关文章推荐
- 文本搜索grep知识点总结
- whereis命令详解
- Nginx学习资源汇总
- C# Directory FileStream StreamWriter
- JS调用水晶报表打印翻页按钮事件
- sed练习
- mysql中内存的使用与分配
- redis总结
- git使用之五——Github上fork项目后与原项目保持同步
- iOS 网络请求的第三方比对
- Android View绘制流程
- BAT线下战争:巨额投资或培养出自己最大对手(包括美团、58、饿了么在内的公司都在计划推出自己的支付工具和金融产品,腾讯只做2不做O)
- Objective—C常见特性(instancetype和id比较、@property、枚举宏(Enumeration Macros))
- Error: [ng:areq] Argument 'HelloCtrl' is not a function, got undefined
- 流编辑器sed知识点总结
- JQuery max-height的value不能为数值
- poj 1860
- touch命令详解
- git使用之四——windows下github桌面版的安装
- 编程相关网站