游戏采用MongoDB的好处

参考网上的某篇文章。。
 

1、适应游戏灵活多变的需求。
游戏的特点是需求变化快,为了保持玩家的新鲜感,需要不停的往游戏中
注入新的元素。假如使用传统的关系型数据库来存放这些数据,可能面临需要经常做表结构修改的ddl操作。MongoDB的schema-free的特性,可以使用户避免这样的问题。schema-free使数据库中的表(集合)内包含不同结构的文档。此外,MongoDB使用类JSon格式进行数据交互,这是最接近对象模型的,对开发人员十分友好。

2、自动过期功能
游戏中经常会出现很多免费道具收费的模式,也有很多类似道具自动过期的功能,这些可以通过MongoDB的TTL索引轻而易举的实现。
MongoDB的TTL索引:TTL索引是MongoDB中一种特殊的索引,可以支持文档在一定时间之后自动过期删除。TTL索引只能在单字段上进行建立,并且字段类型必须是date类型或包含date类型的数组(如果数组中包含多个date类型字段,则取最早时间为过期时间。)
机制是:当集合中某个字段建立TTL索引后,后台会有一个单线程,通过不断查询(默认60s一次)索引的值来判断document是否过期。并且删除文档的动作还依据mongod实例的负载情况,如果负载很高,可能会稍微延后一段时间后删除。

3、地理位置索引

MongoDB支持二维空间索引,使用空间索引,mongoDB支持一种特殊查询,如某地图网站上可以查找离你最近的咖啡厅,银行等信息。在游戏中寻找附件玩家,这些类似任务,使用MongoDB将会十分容易实现。

4、高可用

MongoDB副本集是一个相当成熟的高可用框架。它通过一主多备结构保证服务的可用性,当主宕机后还存活的备会自动选举出新的主。

 replica_set_read_write_operations_primary

5、高可扩展。
MongoDB 的sharding架构,将数据库切分成多个部分放到不同的server上,其动态扩容和负载均衡都是自动进行的,缓解了单一数据库的性能问题。

sharded_collectionsharded_cluster_production_architecture

6、回档
游戏中经常会面临对游戏进行回档的选择,因为程序不可避免有bug存在。如果游戏问题没有解决,这时候需要考虑对游戏进行回档。对于数据库回档的问题,MongoDB提供了延迟副本集节点的设定来解决这个问题,即,将某个节点配置成落后于最新数据一定的时间量。

7、运营数据分析
在数据运营方面,MongoDB有aggregation pipeline和Map-Reduce两个强大的功能。
aggregation pipeline使用管道处理模式,提供了过滤、分组、排序等丰富的操作支持,具有简单的操作性兼顾的性能。
map-reduce则可以使用javascript进行自定义处理。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值