处理数据的方法、服务器、系统和计算机可读程序介质技术方案

技术编号:23547501 阅读:24 留言:0更新日期:2020-03-24 21:36
本申请实施例公开了一种处理数据的方法和服务器,其中方法包括:初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将玩家游戏数据载入到内存中的不同数据结构中;玩家发送玩家游戏数据到服务器后,服务器对玩家游戏数据进行分类,将分类后的数据发送到预先配置的分管各类玩家游戏数据的消息队列中;读取服务器的数据时,优先从内存的不同数据结构中读取,若读取失败,则从第二数据库中读取数据,若读取失败,则从第一数据库中读取;存储数据时,优先更新内存中数据,再更新第一数据库中的数据,最后更新第二数据库中的数据。本申请实施例对不同类数据使用不同的存储和读取策略,降低了获取数据的复杂度,提高了游戏体验。

Methods of processing data, servers, systems, and computer-readable program media

【技术实现步骤摘要】
处理数据的方法、服务器、系统和计算机可读程序介质
本申请涉及互联网
,尤其是涉及一种处理数据的方法、服务器、系统和计算机可读程序介质。
技术介绍
随着数字经济产业的发展,中国游戏市场规模近年来保持高速增长,行业销售规模迎来重大突破,随之而来的高并发、数据共享、数据安全问题成了特别需要关注的问题,许多公司因此遭受了巨大损失。为了实现高并发时,不同地域位置的游戏服务器共用一个数据库的情况下,玩家能够无障碍、安全地切换服务器登录,就需要实现不同服务器间的数据同步与共享。在生产环境中,假设A、B为游戏服务器、C为客户端、D为数据库服务器,要保证玩家通过C用同一个账号可以切换登录A、B服务器,并且数据保持一致性以及良好的用户体验。对于网站平台,由于不用用户的数据相对独立,用户响应时间不是游戏中那么敏感,采用的手段是每次更新数据,都对数据库直接操作,每次提取数据也直接从数据库中提取,从而数据始终是一致的。在游戏系统中,玩家之间通过关注或者添加好友等方式相互关联,如果每次读取数据都从数据库中读取,势必导致嵌套查表,造成N2(N为玩家个数)的数据复杂度,导致游戏体验不佳。
技术实现思路
本申请实施例的主要目的在于提供一种处理数据的方法和服务器,对不同类玩家游戏数据使用不同的存储和读取策略,降低了获取玩家游戏数据的复杂度,提高了游戏体验。第一方面,提供了一种处理数据的方法,包括:初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将所述玩家游戏数据载入到内存中的不同数据结构中;r>玩家发送玩家游戏数据到服务器后,服务器对所述玩家游戏数据进行分类,将分类后的玩家游戏数据发送到预先配置的分管各类玩家游戏数据的消息队列中;读取服务器的玩家游戏数据时,优先从所述内存的不同数据结构中读取,若读取失败,则从所述第二数据库中读取玩家游戏数据,若读取失败,则从所述第一数据库中读取;存储玩家游戏数据时,优先更新内存中数据,再更新所述第一数据库中的玩家游戏数据,最后更新所述第二数据库中的玩家游戏数据。其中一种设计中,所述第一数据库为Mysql数据库,第二数据库为Redis缓存数据库。其中一种设计中,所述方法还包括步骤:按照预设帧率轮询所述消息队列中是否有新的玩家游戏数据,如果有新的玩家游戏数据,则将所述新的玩家游戏数据发给同一个房间内的所有玩家。其中一种设计中,所述方法还包括步骤:通过玩家任务管理对象对所述玩家的任务进行管理,每个玩家ID对应一个玩家任务管理对象;当玩家数据更新时,通过邮件配置数据,生成一条邮件保存在玩家邮件管理对象中,供所述玩家加载查看,所述每个玩家ID对应一个玩家邮件管理对象。第二方面,本申请实施例提供了一种服务器,该服务器包括:存储单元,用于初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将所述玩家游戏数据载入到内存中的不同数据结构中;还用于存储玩家游戏数据时,优先更新内存中数据,再更新所述第一数据库中的玩家游戏数据,最后更新所述第二数据库中的玩家游戏数据分类单元,用于玩家发送玩家游戏数据到服务器后,服务器对所述玩家游戏数据进行分类,将分类后的玩家游戏数据发送到预先配置的分管各类玩家游戏数据的消息队列中;读取单元,用于读取服务器的玩家游戏数据时,优先从所述内存的不同数据结构中读取,若读取失败,则从所述第二数据库中读取玩家游戏数据,若读取失败,则从所述第一数据库中读取。其中一种设计中,所述第一数据库为Mysql数据库,第二数据库为Redis缓存数据库。其中一种设计中,所述的服务器还包括:轮询单元,用于按照预设帧率轮询所述消息队列中是否有新的玩家游戏数据,如果有新的玩家游戏数据,则将所述新的玩家游戏数据发给同一个房间内的所有玩家。其中一种设计中,所述的服务器还包括:玩家任务管理对象单元,用于对所述玩家的任务进行管理,每个玩家ID对应一个玩家任务管理对象;玩家邮件管理对象,用于当玩家数据更新时,通过邮件配置数据,生成一条邮件,保存在玩家邮件管理对象中,供所述玩家加载查看,所述每个玩家ID对应一个玩家邮件管理对象。第三方面,提供了一种游戏系统,包括客户端以及如第二方面所述的服务器,游戏玩家通过所述客户端连接到所述服务器。第四方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据第一方面所述的方法步骤。综上所述,本申请实施例通过将玩家游戏数据先分类,对不同类玩家游戏数据使用不同的存储和读取策略,并结合高效的消息队列和多线程技术,使本技术方案能够让处于不同地域位置的游戏服务器高效、准确的实现数据共享与同步,从而玩家可以用同一个账号在不同的服务器上登录游戏,游戏体验顺畅。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种处理数据的方法流程图;图2(a)为本申请实施例提供的一种服务器的架构示意框图;图2(b)为本申请实施例提供的另一种服务器的架构示意框图;图2(c)为本申请实施例提供的另一种服务器的架构示意框图;图3为本申请实施例提供的一种游戏服务器系统示意图;图4是本申请实施例提供的一种游戏服务器系统示意图;图5是本申请实施例提供的一种游戏服务器系统多线程处理原理的示意图;图6是本申请实施例提供的一种游戏服务器系统多线程处理原理示意图。具体实施方式下面结合附图所示的各实施方式对本专利技术进行详细说明,但应当说明的是,这些实施方式并非对本专利技术的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本专利技术的保护范围之内。本说明书中的各个实施例示出了一种基于数据共享的高并发游戏服务器架构。通过将数据先分类,对不同类数据使用不同的存储和读取策略,并结合高效的消息队列和多线程技术,使本架构方案能够让处于不同地域位置的游戏服务器高效、准确的实现数据共享与同步,从而玩家可以用同一个账号在不同的服务器上登录游戏。如图1所示,本申请实施例提供了一种处理数据的方法,至少包括以下步骤(以下所述第一数据库为Mysql数据库,所述第二数据库为Redis缓存数据库):步骤101:初始化服务器,将游戏初始数据储存在第一数据库中(初始数据包括但不局限于任务配置数据、邮件配置数据、玩家等级配置数据等)。当服务器启动时,将玩家游戏数据载入到内存中的不同数据结构。步骤102:玩家发送玩家游戏数据到服务器后,服务器对相应数据进行分类,所述玩家游戏数据信息包括但不局限于:玩家信息、战斗匹配消息和战斗消息;将各类消息发送到预先配置的分管各本文档来自技高网...

【技术保护点】
1.一种处理数据的方法,其特征在于,包括:/n初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将所述玩家游戏数据载入到内存中的不同数据结构中;/n玩家发送玩家游戏数据到服务器后,服务器对所述玩家游戏数据进行分类,将分类后的玩家游戏数据发送到预先配置的分管各类玩家游戏数据的消息队列中;/n读取服务器的玩家游戏数据时,优先从所述内存的不同数据结构中读取,若读取失败,则从所述第二数据库中读取玩家游戏数据,若读取失败,则从所述第一数据库中读取;/n存储玩家游戏数据时,优先更新内存中数据,再更新所述第一数据库中的玩家游戏数据,最后更新所述第二数据库中的玩家游戏数据。/n

【技术特征摘要】
1.一种处理数据的方法,其特征在于,包括:
初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将所述玩家游戏数据载入到内存中的不同数据结构中;
玩家发送玩家游戏数据到服务器后,服务器对所述玩家游戏数据进行分类,将分类后的玩家游戏数据发送到预先配置的分管各类玩家游戏数据的消息队列中;
读取服务器的玩家游戏数据时,优先从所述内存的不同数据结构中读取,若读取失败,则从所述第二数据库中读取玩家游戏数据,若读取失败,则从所述第一数据库中读取;
存储玩家游戏数据时,优先更新内存中数据,再更新所述第一数据库中的玩家游戏数据,最后更新所述第二数据库中的玩家游戏数据。


2.根据权利要求1所述的方法,其特征在于,所述第一数据库为Mysql数据库,第二数据库为Redis缓存数据库。


3.根据权利要求2所述的方法,其特征在于,还包括:
按照预设帧率轮询所述消息队列中是否有新的玩家游戏数据,如果有新的玩家游戏数据,则将所述新的玩家游戏数据发给同一个房间内的所有玩家。


4.根据权利要求1所述的,其特征在于,还包括:
通过玩家任务管理对象对所述玩家的任务进行管理,每个玩家ID对应一个玩家任务管理对象;
当玩家数据更新时,通过玩家邮件管理对象中的配置数据,生成一条邮件保存在玩家邮件管理对象中,供所述玩家加载查看,所述每个玩家ID对应一个玩家邮件管理对象。


5.一种服务器,其特征在于,包括:
存储单元,用于初始化服务器时,将玩家游戏数据储存在第一数据库中,服务器启动后,将所述玩家游戏数据载入到内存中的不同数据结构中;
分类单元,...

【专利技术属性】
技术研发人员:程道雷洪学海
申请(专利权)人:上饶市中科院云计算中心大数据研究院
类型:发明
国别省市:江西;36

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1