本发明实施例涉及数据处理技术,尤其涉及一种数据更新方法、装置、设备和存储介质。
背景技术:
随着互联网的普及和网络游戏的推广,游戏玩家的战斗信息会保存在数据库中,在游戏的过程中,或者游戏结束之后,如果发现部分游戏玩家的部分战斗信息有误,则需将数据库缓存的部分游戏玩家的部分战斗信息进行修改并更新,但现有技术中还没有在缓存数据库中针对部分游戏玩家的部分战斗信息修改并更新的方法,若不对有误的部分玩家的部分战斗信息进行修改的话,则会严重影响网络游戏本身的正常运作和其他游戏玩家对游戏的兴趣,破坏了网络游戏的公平性。
技术实现要素:
本发明实施例提供一种数据更新方法、装置、设备和存储介质,以实现实时对待更新数据进行更新的效果。
第一方面,本发明实施例提供了一种数据更新方法,该方法包括:
缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;
所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功信息;
当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
第二方面,本发明实施例还提供了一种数据更新装置,该装置包括:
处理信息发送模块,用于缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;
数据接收模块,用于所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功消息;
第一数据处理模块,用于当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中任一所述的数据更新方法。
第四方面,本发明实施例还提供了一种一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例中任一所述的数据更新方法。
本发明实施例的技术方案,通过缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功信息;当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。实现了实时对待更新数据进行更新的效果。
附图说明
图1是本发明实施例一中的数据更新方法的流程图;
图2是本发明实施例一中的数据更新方法执行流程图;
图3是本发明实施例二中的数据更新方法的流程图;
图4是本发明实施例二中的数据查询方法执行流程图;
图5是本发明实施例三中的数据更新装置的结构示意图;
图6是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的数据更新方法的流程图,本实施例可适用于对数据库中的数据进行实时更新的情况,该方法可以由数据更新装置来执行,该数据更新装置可以由软件和/或硬件来实现,该数据更新装置可以配置在计算设备上,具体包括如下步骤:
s110、缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库。
示例性的,缓存层代理服务器可以是一个相当于中介的服务器,用于各命令传输的媒介。第一游戏服务器可以是一个服务器。数据更新请求可以是对数据进行更新的命令,可选的,数据更新请求可以包括:数据修改请求和/或数据删除请求。关系型数据库可以是一个用于存储玩家游戏行为日志的数据库。参考图2所示的数据更新方法执行流程图,缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将该数据更新请求发送至关系型数据库中,以便关系型数据库可根据该数据更新请求对关系型数据库内的待更新数据进行更新。
可选的,当缓存层代理服务器将数据更新请求发送至关系型数据库后,关系型数据库可基于该数据更新请求,对关系型数据库中的待更新数据进行修改和/或删除。
示例性的,当数据更新请求为数据修改请求时,关系型数据库可基于该数据修改请求,对关系型数据库中的待更新数据进行修改或删除;当数据更新请求为数据删除请求时,关系型数据库可基于该数据删除请求,对关系型数据库中的待更新数据进行删除。
s120、所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功信息。
示例性的,这里的数据更新成功消息可以是数据修改成功消息或者数据删除成功消息。当关系型数据库基于数据更新请求,对待更新数据进行更新后,向缓存层代理服务器发送数据更新成功消息,以便缓存层代理服务器可实时接收到数据更新成功消息,实时知道待更新数据的更新情况。这里缓存层代理服务器接收数据更新成功消息的方式可以是以弹话框形式接收,也可以是其他任何可接收到数据更新成功消息的方式,这里不做限定。
s130、当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
示例性的,这里的内存数据库可以是一个与关系型数据库类似的用于存储游戏玩家游戏行为日志的数据库,该内存数据库与关系型数据库的不同之处在于,内存数据库中的部分游戏玩家的部分游戏行为日志可能丢失,但关系型数据库中会保留所有游戏玩家的所有游戏行为日志,除非是接收到数据删除请求,对关系型数据库中的待更新数据进行删除,否则该关系型数据库中会保留所有游戏玩家的所有游戏行为日志,可以理解的是,关系型数据库是游戏玩家的游戏行为日志的最后一道存储屏障。当缓存层代理服务器接收到关系型数据库发送的数据更新成功信息时,缓存层代理服务器将数据更新请求发至内存数据库,以使内存数据库对待更新数据进行更新。
可选的,当缓存层代理服务器接收到数据更新成功消息为数据修改成功信息时,缓存层代理服务器将数据修改成功信息发至内存数据库,以使内存数据库对待更新数据进行修改。
可选的,当缓存层代理服务器接收到数据更新成功消息为数据删除成功信息时,缓存层代理服务器将数据删除成功信息发至内存数据库,以使内存数据库对待更新数据进行删除。
可选的,当缓存层代理服务器接收到数据更新成功消息为数据修改成功信息时,缓存层代理服务器将数据修改成功信息发至内存数据库,以使内存数据库对待更新数据进行删除。
示例性的,当关系型数据库基于数据更新请求,对待更新数据进行修改时,缓存层代理服务器接收关系型数据库发送的数据修改成功消息,并将数据修改成功信息发至内存数据库,内存数据库基于该数据修改成功消息,对内存数据中与数据修改成功消息对应的待更新数据进行修改或删除;当关系型数据库基于数据更新请求,对待更新数据进行删除时,缓存层代理服务器接收关系型数据库发送的数据删除成功消息,并将数据删除成功信息发至内存数据库,内存数据库基于该数据删除成功消息,对内存数据中与数据删除成功消息对应的待更新数据进行删除。这样可同步将内存数据和关系型数据库中的待更新数据进行更新,实现了实时对待更新数据进行更新的效果,这样可避免后续读取数据时,读取到脏数据。
本发明实施例的技术方案,通过缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将该数据更新请求发送至关系型数据库中,以便关系型数据库可根据该数据更新请求对关系型数据库内的待更新数据进行更新,当关系型数据库基于数据更新请求,对待更新数据进行更新后,向缓存层代理服务器发送数据更新成功消息,以便缓存层代理服务器可实时接收到数据更新成功消息,实时知道待更新数据的更新情况,当缓存层代理服务器接收到关系型数据库发送的数据更新成功信息时,缓存层代理服务器将数据更新请求发至内存数据库,以使内存数据库对待更新数据进行更新,这样可同步将内存数据和关系型数据库中的待更新数据进行更新,实现了实时对待更新数据进行更新的效果,这样可避免后续读取数据时,读取到脏数据。
实施例二
图3为本发明实施例二提供的数据更新方法的流程图,本发明实施例是在上述实施例的基础上,对上述实施例的进一步优化,具体包括如下步骤:
s210、缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库。
s220、所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功信息。
s230、当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
s240、当所述缓存层代理服务器接收第二游戏服务器发送的数据查询的查询请求时,将所述查询请求发送至所述内存数据库。
示例性的,参考图4所示的数据查询方法执行流程图,这里的第二游戏服务器可以是与第一游戏服务器等同效果的服务器。数据查询可以是查询数据库中任一或任几个数据。查询请求可以是用户想要查询任一或任几个数据的命令。当用户想要查询任一或任几个数据时,可通过第二游戏服务器向缓存层代理服务器发送数据查询的查询请求,缓存层代理服务器接收到该查询请求时,将该查询请求发送至内存数据库,以使内存数据库根据该查询请求在内存数据库查询用户所需的数据。
s250、所述缓存层代理服务器如果接收所述内存数据库发送的与所述查询请求对应的查询数据,则将所述查询数据反馈至所述第二游戏服务器。
示例性的,当内存数据库接收到数据查询的查询请求时,内存数据库根据该查询请求在内存数据库查询用户所需的数据,若内存数据库中存储有与查询请求对应的数据时,内存数据库可将该与查询请求对应的数据反馈至缓存层代理服务器,缓存层代理服务器将该数据反馈至第二游戏服务器,内存数据库还可直接将该与查询请求对应的数据反馈至第二游戏服务器,这样可节省了时间,提高查询效率。
s260、所述缓存层代理服务器如果未接收所述内存数据库发送的与所述查询请求对应的查询数据,则向所述关系型数据库请求与所述查询请求对应的数据,当接收所述关系型数据库发送的查询数据时,将所述查询数据反馈至所述第二游戏服务器。
示例性的,当内存数据库接收到数据查询的查询请求时,内存数据库根据该查询请求在内存数据库查询用户所需的数据,若内存数据库中未存储有与查询请求对应的数据,或者内存数据库存储有与查询请求对应的数据,但内存数据库在将与查询请求对应的数据反馈至缓存层代理服务器时,可能由于网络或者其他原因,导致缓存层代理服务器未接收到内存数据库反馈回来的与查询请求对应的数据时,则缓存层代理服务器向关系型数据库请求与查询请求对应的数据,若关系型数据库中存储有与查询请求对应的数据时,关系型数据库可将该与查询请求对应的数据反馈至缓存层代理服务器,缓存层代理服务器将该数据反馈至第二游戏服务器,这样在无法接收到内存数据库反馈的与查询请求对应的数据时,可通过关系型数据库获取与查询请求对应的数据。
需要说明的是,步骤s240-s260与步骤s210-s230的顺序可调换,即可根据用户需求先进行数据修改再进行数据查询,也可根据用户需求先进行数据查询再进行数据修改;步骤s240-s260与步骤s210-s230也可单独存在,即可根据用户需求只进行数据查询,不对数据进行修改,也可根据用户需求只进行数据修改,不对数据进行查询。这里具体是先进行数据修改再进行数据查询,还是先进行数据查询再进行数据修改,还是只进行数据查询,不对数据进行修改,还是只进行数据修改,不对数据进行查询,可根据用户需求自行决定,这里不做限定。
本发明实施例的技术方案,通过缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将该数据更新请求发送至关系型数据库中,当关系型数据库基于数据更新请求,对待更新数据进行更新后,向缓存层代理服务器发送数据更新成功消息,当缓存层代理服务器接收到关系型数据库发送的数据更新成功信息时,缓存层代理服务器将数据更新请求发至内存数据库,以使内存数据库对待更新数据进行更新,当用户想要查询任一或任几个数据时,可通过第二游戏服务器向缓存层代理服务器发送数据查询的查询请求,缓存层代理服务器接收到该查询请求时,将该查询请求发送至内存数据库,以使内存数据库根据该查询请求在内存数据库查询用户所需的数据,当内存数据库接收到数据查询的查询请求时,内存数据库根据该查询请求在内存数据库查询用户所需的数据,若内存数据库中存储有与查询请求对应的数据时,内存数据库可将该与查询请求对应的数据反馈至缓存层代理服务器,缓存层代理服务器将该数据反馈至第二游戏服务器,当缓存层代理服务器未接收内存数据库发送的与查询请求对应的查询数据,则向关系型数据库请求与查询请求对应的数据,当接收关系型数据库发送的查询数据时,将查询数据反馈至所述第二游戏服务器,这样在无法接收到内存数据库反馈的与查询请求对应的数据时,可通过关系型数据库获取与查询请求对应的数据。
实施例三
图5为本发明实施例三提供的数据更新装置的结构示意图,如图5所示,该装置包括:处理信息发送模块31、数据接收模块32和第一数据处理模块33。
其中,处理信息发送模块31,用于缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;
数据接收模块32,用于所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功消息;
第一数据处理模块33,用于当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
可选的,所述数据更新请求包括:数据修改请求和/或数据删除请求,在上述实施例的技术方案的基础上,该装置还包括:
第二数据处理模块,所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改和/或删除。
可选的,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改时,在上述实施例的技术方案中,第一数据处理模块33包括:
第一数据第一修改单元,用于当所述缓存层代理服务器接收到数据修改成功信息时,所述缓存层代理服务器将数据修改成功信息发至内存数据库,以使所述内存数据库对待更新数据进行修改。
可选的,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行删除时,在上述实施例的技术方案中,第一数据处理模块33还包括:
第一数据删除单元,用于当所述缓存层代理服务器接收到数据删除成功信息时,所述缓存层代理服务器将数据删除成功信息发至内存数据库,以使所述内存数据库对待更新数据进行删除。
可选的,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改时,在上述实施例的技术方案中,第一数据处理模块33还包括:
第一数据第二修改单元,用于当所述缓存层代理服务器接收到数据修改成功信息时,所述缓存层代理服务器将所述数据修改成功信息发至内存数据库,以使所述内存数据库对待更新数据进行删除。
在上述实施例的技术方案的基础上,该装置还包括:
查询请求发送模块,用于当所述缓存层代理服务器接收第二游戏服务器发送的数据查询的查询请求时,将所述查询请求发送至所述内存数据库;
数据第一反馈模块,用于所述缓存层代理服务器如果接收所述内存数据库发送的与所述查询请求对应的查询数据,则将所述查询数据反馈至所述第二游戏服务器。
数据第二反馈模块,用于所述缓存层代理服务器如果未接收所述内存数据库发送的与所述查询请求对应的查询数据,则向所述关系型数据库请求与所述查询请求对应的数据,当接收所述关系型数据库发送的查询数据时,将所述查询数据反馈至所述第二游戏服务器。
本发明实施例所提供的数据更新装置可执行本发明任意实施例所提供的数据更新方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种设备的结构示意图,如图6所示,该设备包括处理器40、存储器41、输入装置42和输出装置43;设备中处理器40的数量可以是一个或多个,图6中以一个处理器40为例;设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据更新方法对应的程序指令/模块(例如,处理信息发送模块31、数据接收模块32和第一数据处理模块33)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据更新方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据更新方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据更新方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据更新装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
1.一种数据更新方法,其特征在于,包括:
缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;
所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功信息;
当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述数据更新请求包括:数据修改请求和/或数据删除请求,
所述缓存层代理服务器将所述数据更新请求发送至关系型数据库后,所述方法还包括:
所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改和/或删除。
3.根据权利要求2所述的方法,其特征在于,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改时,
所述当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待处理数据进行更新,包括:
当所述缓存层代理服务器接收到数据修改成功信息时,所述缓存层代理服务器将数据修改成功信息发至内存数据库,以使所述内存数据库对待更新数据进行修改。
4.根据权利要求2所述的方法,其特征在于,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行删除时,
所述当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待处理数据进行更新,包括:
当所述缓存层代理服务器接收到数据删除成功信息时,所述缓存层代理服务器将数据删除成功信息发至内存数据库,以使所述内存数据库对待更新数据进行删除。
5.根据权利要求2所述的方法,其特征在于,当所述关系型数据库基于所述数据更新请求,对所述待更新数据进行修改时,
所述当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待处理数据进行更新,包括:
当所述缓存层代理服务器接收到数据修改成功信息时,所述缓存层代理服务器将所述数据修改成功信息发至内存数据库,以使所述内存数据库对待更新数据进行删除。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述缓存层代理服务器接收第二游戏服务器发送的数据查询的查询请求时,将所述查询请求发送至所述内存数据库;
所述缓存层代理服务器如果接收所述内存数据库发送的与所述查询请求对应的查询数据,则将所述查询数据反馈至所述第二游戏服务器。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述缓存层代理服务器如果未接收所述内存数据库发送的与所述查询请求对应的查询数据,则向所述关系型数据库请求与所述查询请求对应的数据,当接收所述关系型数据库发送的查询数据时,将所述查询数据反馈至所述第二游戏服务器。
8.一种数据同步更新缓存装置,其特征在于,包括:
处理信息发送模块,用于缓存层代理服务器接收第一游戏服务器发送的数据更新请求,并将所述数据更新请求发送至关系型数据库;
数据接收模块,用于所述缓存层代理服务器接收所述关系型数据库发送的所述关系型数据库与所述数据更新请求对应的数据更新成功消息;
第一数据处理模块,用于当所述缓存层代理服务器接收到所述数据更新成功信息时,所述缓存层代理服务器将所述数据更新请求发至内存数据库,以使所述内存数据库对待更新数据进行更新。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据更新方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的数据更新方法。
技术总结