CN112494954A - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112494954A CN112494954A CN202011471622.4A CN202011471622A CN112494954A CN 112494954 A CN112494954 A CN 112494954A CN 202011471622 A CN202011471622 A CN 202011471622A CN 112494954 A CN112494954 A CN 112494954A
- Authority
- CN
- China
- Prior art keywords
- players
- score
- player
- storage space
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000126 substance Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 238000013500 data storage Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F13/798—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5546—Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备及存储介质,该方法包括:获取游戏中多个玩家的分数,对多个玩家的分数进行排序,确定前N个玩家以及前N个玩家中每个玩家对应的分数,将前N个玩家的分数信息存储在第一存储空间,将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。上述处理过程可实现以固定内存存储更多玩家分数信息的目的,提升了游戏服务器的存储性能。
Description
技术领域
本申请实施例涉及游戏领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
在大多数竞技类游戏中,游戏结束后游戏服务器会向玩家展示游戏排行榜,游戏服务器会根据各玩家在游戏中的表现或者关卡进度等,对玩家进行打分和排序,各玩家可以通过游戏排行榜获知自己的分数、排名等。
目前,游戏服务器对排行榜的实现方式主要是以远程字典服务(RemoteDictionary Server,Redis)数据库中的跳跃表为基础,对排行榜数据进行更新、存储,游戏服务器可以通过跳跃表快速获取排行榜中前N的玩家。
然而,随着游戏玩家数量的不断增长,通过上述方式进行数据存储将占用大量内存,从而影响游戏服务器的服务质量,尤其会影响游戏服务器对排行榜数据的更新速度。
发明内容
本申请实施例提供一种数据处理方法、装置、设备及存储介质,提升游戏服务器的存储性能,进而提升游戏服务器的服务质量。
第一方面,本申请实施例提供一种数据处理方法,包括:
获取游戏中多个玩家的分数;
对所述多个玩家的分数进行排序,确定前N个玩家以及所述前N个玩家中每个玩家对应的分数,N为正整数;
将所述前N个玩家的分数信息存储在第一存储空间,将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
在本申请的一个实施例中,所述前N个玩家的分数信息包括:所述前N个玩家以及所述前N个玩家中每个玩家对应的分数。
在本申请的一个实施例中,除所述前N个玩家之外的其他玩家的分数统计信息包括:至少一个分数,以及与所述分数对应的玩家人数。
在本申请的一个实施例中,所述将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间之前,所述方法还包括:
获取除所述前N个玩家之外的其他玩家的分数统计信息;
根据除所述前N个玩家之外的其他玩家的分数统计信息,统计各个分数对应的玩家人数。
在本申请的一个实施例中,所述方法还包括:
获取第一玩家的更新分数,所述第一玩家为所述多个玩家的任意一个玩家;
若所述第一玩家的分数信息已存储在所述第一存储空间,根据所述第一玩家的更新分数更新所述第一存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家的分数信息已存储在所述第二存储空间,根据所述第一玩家的更新分数更新所述第二存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家未存储在所述第一存储空间以及所述第二存储空间,根据所述第一玩家的更新分数更新所述第一存储空间以及所述第二存储空间的至少一项。
在本申请的一个实施例中,所述第一存储空间采用跳跃表存储分数信息,所述第二存储空间采用树状数组存储分数信息。
在本申请的一个实施例中,所述方法还包括:
游戏结束时,或者,接收到游戏排行榜请求时,从所述第一存储空间中获取前N个玩家的分数信息;
展示所述前N个玩家的分数信息。
在本申请的一个实施例中,所述方法还包括:
游戏结束时,或者,接收到游戏排行榜请求时,获取第一玩家当前的分数;
根据所述第一玩家当前的分数,查询所述第一存储空间以及所述第二存储空间的至少一项,确定所述第一玩家的名次;
展示所述第一玩家的名次。
第二方面,本申请实施例提供一种数据处理装置,包括:
获取模块,用于获取游戏中多个玩家的分数;
处理模块,用于对所述多个玩家的分数进行排序,确定前N个玩家以及所述前N个玩家中每个玩家对应的分数,N为正整数;
存储模块,用于将所述前N个玩家的分数信息存储在第一存储空间,将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备能够执行第一方面任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面中任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
本申请实施例提供一种数据处理方法、装置、设备及存储介质,该方法包括:获取游戏中多个玩家的分数,对多个玩家的分数进行排序,确定前N个玩家以及前N个玩家中每个玩家对应的分数,将前N个玩家的分数信息存储在第一存储空间,将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。上述处理过程可实现以固定内存存储更多玩家分数信息的目的,提升了游戏服务器的存储性能。
附图说明
图1为本申请实施例提供的数据处理方法的一种场景示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的数据存储的示意图;
图4为本申请实施例提供的一种数据处理方法的流程示意图;
图5为本申请实施例提供的一种分数更新的示意图;
图6为本申请实施例提供的一种分数更新的示意图;
图7为本申请实施例提供的一种分数更新的示意图;
图8为本申请实施例提供的一种分数更新的示意图;
图9为本申请实施例提供的一种分数更新的示意图;
图10为本申请实施例提供的一种分数更新的示意图;
图11为本申请实施例提供的一种分数更新的示意图;
图12为本申请实施例提供的一种分数更新的示意图;
图13为本申请实施例提供的一种数据处理方法的流程示意图;
图14为本申请实施例提供的一种数据处理方法的流程示意图;
图15为本申请实施例提供的一种数据处理装置的结构示意图;
图16为本申请实施例提供的一种数据处理装置的结构示意图;
图17为本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。
此外,本文中使用的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前大多数游戏中都会有相应的排行榜,排行榜的实现方式有多种:
一种是以Redis中的跳跃表实现为基础的排行榜,这种排行榜可以快速更新玩家的排名,也可以快速获取前N的排行榜玩家,但是随着玩家数量上升,关于该排行榜的相关数据会占用大量的内存,不利于大规模的存储玩家的排名。
另一种是以树状数组为基础的排行榜,由于玩家的分数大小一般是有限的,该排行榜统计某个分数或者分数区间的玩家数量,而不是每个玩家占用一个条目,从而能够以较少的固定的内存实现大规模玩家数据的存储,快速计算出某玩家分数排第几,但是由于存储时只存玩家数量,因此该排行榜无法获取前N的排行榜玩家。
针对上述问题,本申请实施例提供一种数据处理方法,涉及对排行榜数据的存储方案、更新方案以及查询方案。本申请技术方案的整体思路是:融合跳跃表和树状数组的优势,用较少的固定的内存实现游戏中排行榜数据的存储、更新以及查询。在获取各个玩家的分数后,对分数进行排序,采用跳跃表的方式保存前N个玩家的数据,对剩余玩家的分数进行统计,采用树状数组方式保存剩余玩家的统计数据,从而实现以固定内存实现获取前N的排行榜玩家以及获取具体排名的需求。在某一玩家分数发生变化时,通过数据分析,确定是更新跳跃表的数据,还是树状数组的数据,实现对排行榜数据的快速更新。在某一玩家查询排行时,确定该玩家在当前排行榜的位置,从跳跃表或者树状数组中获取玩家数据,并进行数据展示,实现快速查询排名。
在介绍本申请的技术方案之前,首先对本申请实施例提供的数据处理方法的应用场景进行简要介绍。
图1为本申请实施例提供的数据处理方法的一种场景示意图,如图1所示,该场景包括多个终端设备(例如图1中的终端设备11至13)以及游戏服务器14,多个终端设备分别与游戏服务器14通信连接。终端设备11至13为不同玩家使用的终端设备,玩家通过终端设备上的游戏客户端或游戏应用登录游戏服务器14,游戏服务器14为玩家提供各种游戏场景,同时为玩家提供排行榜的查询服务。
以终端设备11为例,如图1所示,玩家1通过终端设备11连接游戏服务器14,终端设备11将玩家1在游戏中的操作信息发送至游戏服务器14,游戏服务器14记录玩家1在本次游戏中的操作信息,例如包括与其他玩家在游戏对局中相互配合的操作信息。游戏服务器14根据玩家1在本次游戏中的操作信息实时地更新玩家1的分数。在游戏进行时(基于玩家请求),或者,在游戏结束时,游戏服务器14均可向玩家1的终端设备11发送排名信息。终端设备11在图形用户界面上显示玩家1的排名。
需要指出的是,上述场景仅作为一种示例,游戏服务器的上述执行动作还可以由终端设备执行,对此本申请实施例不作任何限制。
下面采用几个具体实施例对本申请提供的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本申请实施例提供的一种数据处理方法的流程示意图。如图2所示,本实施例提供的处理方法涉及数据存储方法,主要包括如下几个步骤:
步骤201、获取游戏中多个玩家的分数。
步骤202、对多个玩家的分数进行排序,确定前N个玩家以及前N个玩家中每个玩家对应的分数,N为正整数。
其中,前N个玩家的分数信息包括前N个玩家以及前N个玩家中每个玩家对应的分数。
示例性的,以N取100为例,假设当前游戏中有300个玩家,游戏服务器可实时地获取当前游戏中每一个玩家的分数,根据分数大小对300个玩家进行排序,游戏服务器可以确定前100个玩家以及前100个玩家中每个玩家的分数。当然,游戏服务器也可以确定剩余玩家(即除前100个玩家之外的玩家),以及剩余玩家中每个玩家的分数。
在对玩家的分数信息进行存储时,考虑到游戏服务器内存空间有限,为了避免玩家的分数信息占用大量的内存空间,本实施例利用两种存储方式相结合的方案,具体见步骤203。
步骤203、将前N个玩家的分数信息存储在第一存储空间,将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
其中,除前N个玩家之外的其他玩家的分数统计信息包括至少一个分数,以及与分数对应的玩家人数。应理解,游戏中玩家数量M可能小于N,也可能大于或等于N,M为正整数。在玩家数量M大于N时,除前N个玩家之外的其他玩家的数量可以表示为M-N,M-N为大于或等于1的正整数。因此,除前N个玩家之外的其他玩家的分数统计信息至少包括一个分数。
本实施例中,第一存储空间采用跳跃表存储分数信息,第二存储空间采用树状数组存储分数信息。也就是说,前N个玩家的分数信息采用跳跃表的方式进行存储,对应第一存储空间。除前N个玩家之外的其他玩家的分数统计信息采用树状数组方式进行存储,对应第二存储空间。
示例性的,以N取100为例,假设当前游戏中有50个玩家,游戏服务器采用跳跃表的方式对50个玩家的分数信息进行存储。假设当前游戏中有200个玩家,游戏服务器采用跳跃表的方式对前100个玩家的分数信息进行存储,采用树状数组方式对后100个玩家的分数信息进行存储。
在本申请的一个实施例中,游戏服务器将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间之前,还包括如下几个步骤:
获取除前N个玩家之外的其他玩家的分数统计信息,根据除前N个玩家之外的其他玩家的分数统计信息,统计各个分数对应的玩家人数。
相应的,游戏服务器将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间,包括:将除前N个玩家之外的其他玩家的至少一个分数,以及至少一个分数对应的玩家人数存储在第二存储空间。
示例性的,图3为本申请实施例提供的数据存储的示意图。如图3所示,游戏服务器采用跳跃表的方式存储前N个玩家的分数信息,包括玩家A、B,…,X,Y,以及每个玩家对应的分数。游戏服务器采用树状数组方式存储出前N个玩家之外的其他玩家的分数统计信息,例如除前N个玩家之外的其他玩家有10个,其中有4个玩家的分数为2,5个玩家的分数为3,1个玩家的分数为500,如图3所示。假设图3中树状数组的最大分数为1000,由图3的跳跃表可知,玩家A的分数为1000,由于玩家A的分数信息已经保存在跳跃表中,因此树状数组中不再统计分数为1000对应的人数,这是与现有技术的一个重要区别。通过上述示例可知,采用本实施例的存储方案可实现以固定内存存储更多分数信息,优化游戏服务器的存储性能。
可选的,在本申请的一个实施例中,游戏服务器可以采用跳跃表的方式对前N个玩家的分数信息进行存储,采用树状数组的方式对所有玩家的分数信息进行存储。也就是说,游戏服务器将前N个玩家的分数信息存储在第一存储空间,将所有玩家的分数信息存储在第二存储空间。
本实施例提供的数据处理方法,通过获取游戏中多个玩家的分数,对多个玩家的分数进行排序,确定前N个玩家以及前N个玩家中每个玩家对应的分数,将前N个玩家的分数信息存储在第一存储空间,将除前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间,从而实现以固定内存存储更多玩家分数信息的目的,提升了游戏服务器的存储性能。
上述实施例公开了采用跳跃表以及树状数组两种方式的结合,对游戏玩家的分数信息进行存储。基于上述存储方案,下面一个实施例提供一种数据更新方案,讨论在游戏玩家数据发生变化时,如何基于两种存储空间进行玩家分数信息的更新。
下面结合附图4至10对本申请实施例提供的数据更新方法进行详细说明。图4为本申请实施例提供的一种数据处理方法的流程示意图。在图2所示实施例的基础上,如图4所示,本实施例提供的数据处理方法涉及数据更新方法,主要包括如下几个步骤:
步骤301、获取第一玩家的更新分数,第一玩家为多个玩家的任意一个玩家。
步骤302、确定第一玩家的分数信息是否已存储在存储空间。
若第一玩家的分数信息已存储在存储空间,执行步骤303。
若第一玩家的分数信息未存储在存储空间(即若第一玩家的分数信息未存储在第一存储空间以及第二存储空间),执行步骤304。
步骤304、确定第一玩家的分数信息是否已存储在第一存储空间。
若第一玩家的分数信息已存储在第一存储空间,执行步骤305。
若第一玩家的分数信息未存储在第一存储空间(即第一玩家的分数信息存储在第二存储空间),执行步骤306。
根据上述实施例可知,第一存储空间用于存储前N个玩家的分数信息,因此在某玩家分数发生变化时,首先需要确定该玩家的分数信息是通过何种方式存储的,在第一存储空间还是在第二存储空间,然后基于更新的分数确定更新第一存储空间,还是更新第二存储空间,还是两个存储空间都需要更新。
步骤303、根据第一玩家的更新分数更新第一存储空间以及第二存储空间的至少一项。
示例性的,图5为本申请实施例提供的一种分数更新的示意图,如图5所示,第一玩家为玩家Y,玩家Y为新加入游戏的玩家。假设当前在线玩家的数量小于N,即第一存储空间未满,此时玩家Y的分数信息采用跳跃表的方式存储。如图5所示,玩家Y的分数为500,位列排行榜第N位,可直接将玩家Y的分数更新到第一存储空间。
上述示例中玩家Y为新加入玩家,且第一存储空间未满,属于根据第一玩家的更新分数更新第一存储空间的更新方案。
示例性的,图6为本申请实施例提供的一种分数更新的示意图,如图6所示,第一玩家为玩家Y,玩家Y为新加入游戏的玩家。假设玩家Y在加入游戏之前,在线玩家数量大于N,玩家Y的分数为498,小于排行榜第N位的玩家Z的分数500。如图6所示,可直接将玩家Y的分数更新到第二存储空间,树状数组中分数498对应的人数由2变更为3。
上述示例中玩家Y为新加入玩家,第一存储空间已满,且玩家Y的分数小于排行榜最低分数,属于根据第一玩家的更新分数更新第二存储空间的更新方案。
示例性的,图7为本申请实施例提供的一种分数更新的示意图,如图7所示,第一玩家为玩家Y,玩家Y为新加入游戏的玩家。假设玩家Y在加入游戏之前,在线玩家数量大于N,玩家Y的分数为802,大于排行榜第N-1位的玩家X的分数800,游戏服务器根据玩家Y的更新数据同时更新第一存储空间以及第二存储空间。如图7所示,玩家Z将跌出排行榜前N,跳跃表第N-1行玩家Y替换玩家X,对应分数由800变更为802,玩家X的分数信息存储至跳跃表第N行,同时树状数组中分数500对应的人数由0变更为1。
上述示例中玩家Y插入排行榜,更新跳跃表和树状数组,属于根据第一玩家的更新分数同时更新第一存储空间以及第二存储空间的更新方案。
步骤305、根据第一玩家的更新分数更新第一存储空间,或者,同时更新第一存储空间以及第二存储空间。
示例性的,图8为本申请实施例提供的一种分数更新的示意图,如图8所示,第一玩家为玩家Y,玩家Y的历史分数信息存储在第一存储空间,即玩家Y的分数信息是采用跳跃表的方式存储的。玩家Y的历史分数为500,位列排行榜第N位。假设玩家Y的分数更新为502,其他玩家分数不变,游戏服务器根据玩家Y的更新分数更新第一存储空间。由于玩家Y的排名没有发生变化,因此仅需要更新玩家Y的分数。
上述示例中玩家Y位于排行榜前N,排名不变,只更新分数,属于根据第一玩家的更新分数更新第一存储空间的更新方案。
示例性的,图9为本申请实施例提供的一种分数更新的示意图,如图9所示,第一玩家为玩家Y,玩家Y的历史分数信息存储在第一存储空间,即玩家Y的分数信息是采用跳跃表的方式存储的。玩家Y的历史分数为500,位列排行榜第N位。假设玩家Y的分数更新为800,其他玩家分数不变,游戏服务器根据玩家Y的更新分数更新第一存储空间。由于玩家Y的排名发生变化,因此除了更新玩家Y的分数之外,还需要更新玩家Y的排名。
上述示例中玩家Y位于排行榜前N,排名以及分数均发生变化,属于根据第一玩家的更新分数更新第一存储空间的更新方案。
示例性的,图10为本申请实施例提供的一种分数更新的示意图,如图10所示,第一玩家为玩家Y,玩家Y的历史分数信息存储在第一存储空间,即玩家Y的分数信息是采用跳跃表的方式存储的。玩家Y的历史分数为500,位列排行榜第N位。需要说明的是,如果分数为500的玩家只有玩家Y一人,对应的树状数组中分数500对应的人数记为0,也就是说,存储在跳跃表中的分数信息不再统计于树状数组中。
假设玩家Y的分数更新为498,其他玩家的分数不变,游戏服务器根据玩家Y的更新分数更新第一存储空间以及第二存储空间。由于玩家Y的更新分数小于某玩家的分数(例如玩家Z的分数),玩家Y的排名跌出排行榜前N,因此需要更新树状数组的统计数据,同时还需更新跳跃表。如图10所示,树状数组中分数499对应的人数由1变更为0,分数498对应的人数由0变更为1。
上述示例中玩家Y位于排行榜前N,排名以及分数均发生变化,且排名跌出排行榜前N,属于根据第一玩家的更新分数同时更新第一存储空间以及第二存储空间的更新方案。
步骤306、根据第一玩家的更新分数更新第二存储空间,或者,同时更新第一存储空间以及第二存储空间。
示例性的,图11为本申请实施例提供的一种分数更新的示意图,如图11所示,第一玩家为玩家Z,玩家Z的历史数据为498,未进入排行榜前N,玩家Z的历史分数信息存储在第二存储空间,即玩家Z的分数信息是采用树状数组的方式存储的。假设玩家Z的分数更新为499,其他玩家分数不变,游戏服务器根据玩家Z的更新分数更新第二存储空间。由于玩家Z的更新数据仍小于排行榜第N位玩家的分数(即排行榜最低分数),玩家Z仍无法进入排行榜,因此只需要更新树状数组的统计数据。如图11所示,树状数组中分数为499对应的人数由4变更为5,分数为498对应的人数由2变更为1。
上述示例中玩家Z始终未进入排行榜,仅分数发生变化,属于根据第一玩家的更新分数更新第二存储空间的更新方案。
示例性的,图12为本申请实施例提供的一种分数更新的示意图,如图12所示,第一玩家为玩家Z,玩家Z的历史数据为498,未进入排行榜前N,玩家Z的历史分数信息存储在第二存储空间,即玩家Z的分数信息是采用树状数组的方式存储的。假设玩家Z的分数更新为501,其他玩家分数不变,游戏服务器根据玩家Z的更新分数同时更新第一存储空间以及第二存储空间。由于玩家Z的更新数据大于之前排行榜第N位玩家的分数(即图12中玩家Y的分数),玩家Z将替换玩家Y位列排行榜第N位,而玩家Y将跌出排行榜前N,因此需要同时更新跳跃表以及树状数组的统计数据。如图12所示,跳跃表第N行玩家Z替换玩家Y,对应分数由500变更为501。树状数组中分数498对应的人数由2变更为1,分数为500对应的人数由0变更为1。
上述示例中玩家Z替换排行榜中其中一个玩家的位置,既更新分数又更新排名,属于根据第一玩家的更新分数同时更新第一存储空间以及第二存储空间的更新方案。
本实施例提供的数据处理方法,通过获取第一玩家的更新分数,确定第一玩家的历史分数信息是否已存储在存储空间,如果第一玩家的历史分数信息已存储在第一存储空间,则根据第一玩家的更新分数更新第一存储空间或者同时更新第一存储空间以及第二存储空间;如果第一玩家的历史分数信息已存储在第二存储空间,则根据第一玩家的更新分数更新第二存储空间或者同时更新第一存储空间以及第二存储空间;如果第一玩家的历史分数信息既未存储在第一存储空间也未存储在第二存储空间,则根据第一玩家的更新分数更新第一存储空间以及第二存储空间的至少一项。上述方案公开了基于上述存储方案如何实现对分数数据的更新,提升游戏服务器的更新效率。
下面结合附图13和附图14对排行榜数据的查询方法进行了详细说明。
图13为本申请实施例提供的一种数据处理方法的流程示意图。在上述任一实施例的基础上,如图13所示,本实施例提供的数据处理方法涉及数据查询方法,主要包括如下几个步骤:
步骤401、游戏结束时,或者,接收到游戏排行榜请求时,从第一存储空间中获取前N个玩家的分数信息。
步骤402、展示前N个玩家的分数信息。
本实施例中,游戏服务器可以根据玩家的查询请求,在游戏进行过程中向该玩家展示前N个玩家的分数信息,例如展示前N个玩家的玩家ID以及该玩家ID对应的实时分数。游戏服务器还可以在游戏结束时,向玩家展示前N个玩家的分数信息。
图14为本申请实施例提供的一种数据处理方法的流程示意图。在上述任一实施例的基础上,如图14所示,本实施例提供的数据处理方法涉及数据查询方法,主要包括如下几个步骤:
步骤501、游戏结束时,或者,接收到游戏排行榜请求时,获取第一玩家当前的分数。
步骤502、根据第一玩家当前的分数,查询第一存储空间以及第二存储空间的至少一项,确定第一玩家的名次。
步骤503、展示第一玩家的名次。
本实施例中,游戏服务器可以根据玩家的查询请求,在游戏进行过程中向玩家展示该玩家的分数信息,例如展示该玩家当前的排名、分数等。游戏服务器还可以在游戏结束时,向该玩家展示该玩家最终的排名或分数。
图15为本申请实施例提供的一种数据处理装置的结构示意图,如图15所示,本实施例的数据处理装置600,包括:获取模块601,处理模块602以及存储模块603。
获取模块601,用于获取游戏中多个玩家的分数;
处理模块602,用于对所述多个玩家的分数进行排序,确定前N个玩家以及所述前N个玩家中每个玩家对应的分数,N为正整数;
存储模块603,用于将所述前N个玩家的分数信息存储在第一存储空间,将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
在本申请的一个实施例中,所述前N个玩家的分数信息包括所述前N个玩家以及所述前N个玩家中每个玩家对应的分数。
在本申请的一个实施例中,除所述前N个玩家之外的其他玩家的分数统计信息包括至少一个分数,以及与所述分数对应的玩家人数。
在本申请的一个实施例中,在存储模块603将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间之前,获取模块601,还用于:
获取除所述前N个玩家之外的其他玩家的分数统计信息;
处理模块602,还用于根据除所述前N个玩家之外的其他玩家的分数统计信息,统计各个分数对应的玩家人数。
图16为本申请实施例提供的一种数据处理装置的结构示意图,在图15所示数据处理装置的基础上,如图16所示,本实施例的数据处理装置600,还包括:更新模块604以及展示模块605。
在本申请的一个实施例中,获取模块601,还用于获取第一玩家的更新分数,所述第一玩家为所述多个玩家的任意一个玩家;
若所述第一玩家的分数信息已存储在所述第一存储空间,更新模块604,用于根据所述第一玩家的更新分数更新所述第一存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家的分数信息已存储在所述第二存储空间,更新模块604,用于根据所述第一玩家的更新分数更新所述第二存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家未存储在所述第一存储空间以及所述第二存储空间,更新模块604,用于根据所述第一玩家的更新分数更新所述第一存储空间以及所述第二存储空间的至少一项。
在本申请的一个实施例中,所述第一存储空间采用跳跃表存储分数信息,所述第二存储空间采用树状数组存储分数信息。
在本申请的一个实施例中,获取模块601,还用于:
游戏结束时,或者,接收到游戏排行榜请求时,从所述第一存储空间中获取前N个玩家的分数信息;
展示模块605,用于展示所述前N个玩家的分数信息。
在本申请的一个实施例中,获取模块601,还用于游戏结束时,或者,接收到游戏排行榜请求时,获取第一玩家当前的分数;
处理模块602,还用于根据所述第一玩家当前的分数,查询所述第一存储空间以及所述第二存储空间的至少一项,确定所述第一玩家的名次;
展示模块605,用于展示所述第一玩家的名次。
本实施例提供的数据处理装置,可以用于执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图17为本申请实施例提供的一种电子设备的硬件结构示意图。如图17所示,本实施例提供的电子设备700,包括:
至少一个处理器701(图17中仅示出了一个处理器);以及
与所述至少一个处理器通信连接的存储器702;其中,
所述存储器702存储有可被所述至少一个处理器701执行的指令,所述指令被所述至少一个处理器701执行,以使电子设备700能够执行前述任一方法实施例中的技术方案。
可选的,存储器702既可以是独立的,也可以跟处理器701集成在一起。
当存储器702是独立于处理器701之外的器件时,电子设备700还包括:总线703,用于连接存储器702和处理器701。
本申请实施例提供的电子设备可以执行前述任一方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器701执行以实现如上方法实施例中的各个步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上方法实施例中的各个步骤。
本申请实施例还提供了一种芯片,包括:处理模块与通信接口,该处理模块能执行前述方法实施例中的各个步骤。
进一步地,该芯片还包括存储模块(如,存储器),存储模块用于存储指令,处理模块用于执行存储模块存储的指令,并且对存储模块中存储的指令的执行使得处理模块执行前述方法实施例中的各个步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
获取游戏中多个玩家的分数;
对所述多个玩家的分数进行排序,确定前N个玩家以及所述前N个玩家中每个玩家对应的分数,N为正整数;
将所述前N个玩家的分数信息存储在第一存储空间,将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
2.根据权利要求1所述的方法,其特征在于,
所述前N个玩家的分数信息包括:
所述前N个玩家以及所述前N个玩家中每个玩家对应的分数。
3.根据权利要求1所述的方法,其特征在于,
除所述前N个玩家之外的其他玩家的分数统计信息包括:
至少一个分数,以及与所述分数对应的玩家人数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间之前,所述方法还包括:
获取除所述前N个玩家之外的其他玩家的分数统计信息;
根据除所述前N个玩家之外的其他玩家的分数统计信息,统计各个分数对应的玩家人数。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
获取第一玩家的更新分数,所述第一玩家为所述多个玩家的任意一个玩家;
若所述第一玩家的分数信息已存储在所述第一存储空间,根据所述第一玩家的更新分数更新所述第一存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家的分数信息已存储在所述第二存储空间,根据所述第一玩家的更新分数更新所述第二存储空间,或者,同时更新所述第一存储空间以及所述第二存储空间;
若所述第一玩家未存储在所述第一存储空间以及所述第二存储空间,根据所述第一玩家的更新分数更新所述第一存储空间以及所述第二存储空间的至少一项。
6.根据权利要求1-3中任一项所述的方法,其特征在于,
所述第一存储空间采用跳跃表存储分数信息,所述第二存储空间采用树状数组存储分数信息。
7.根据权利要求1-3中任一项所述的方法,其特征在于,
所述方法还包括:
游戏结束时,或者,接收到游戏排行榜请求时,从所述第一存储空间中获取前N个玩家的分数信息;
展示所述前N个玩家的分数信息。
8.根据权利要求1-3中任一项所述的方法,其特征在于,
所述方法还包括:
游戏结束时,或者,接收到游戏排行榜请求时,获取第一玩家当前的分数;
根据所述第一玩家当前的分数,查询所述第一存储空间以及所述第二存储空间的至少一项,确定所述第一玩家的名次;
展示所述第一玩家的名次。
9.一种数据处理装置,其特征在于,包括:
获取模块,用于获取游戏中多个玩家的分数;
处理模块,用于对所述多个玩家的分数进行排序,确定前N个玩家以及所述前N个玩家中每个玩家对应的分数,N为正整数;
存储模块,用于将所述前N个玩家的分数信息存储在第一存储空间,将除所述前N个玩家之外的其他玩家的分数统计信息存储在第二存储空间。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备能够执行权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-8中任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011471622.4A CN112494954A (zh) | 2020-12-15 | 2020-12-15 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011471622.4A CN112494954A (zh) | 2020-12-15 | 2020-12-15 | 数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112494954A true CN112494954A (zh) | 2021-03-16 |
Family
ID=74973251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011471622.4A Pending CN112494954A (zh) | 2020-12-15 | 2020-12-15 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112494954A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3934662B1 (ja) * | 2006-02-17 | 2007-06-20 | 株式会社コナミデジタルエンタテインメント | ゲーム状態提示装置、ゲーム状態提示方法、ならびに、プログラム |
CN107773985A (zh) * | 2017-10-13 | 2018-03-09 | 北京知道创宇信息技术有限公司 | 虚拟奖品分配方法、装置及电子设备 |
JP2019022691A (ja) * | 2018-09-21 | 2019-02-14 | 株式会社コナミデジタルエンタテインメント | 情報処理装置、プログラム、情報処理システム |
CN110833696A (zh) * | 2019-11-06 | 2020-02-25 | 网易(杭州)网络有限公司 | 玩家排名方法与装置、存储介质、电子设备 |
CN110898434A (zh) * | 2019-11-06 | 2020-03-24 | 上饶市中科院云计算中心大数据研究院 | 处理数据的方法、服务器、系统和计算机可读程序介质 |
CN111475224A (zh) * | 2020-03-31 | 2020-07-31 | 百度在线网络技术(北京)有限公司 | 对象排名方法、装置、设备及计算机存储介质 |
-
2020
- 2020-12-15 CN CN202011471622.4A patent/CN112494954A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3934662B1 (ja) * | 2006-02-17 | 2007-06-20 | 株式会社コナミデジタルエンタテインメント | ゲーム状態提示装置、ゲーム状態提示方法、ならびに、プログラム |
CN107773985A (zh) * | 2017-10-13 | 2018-03-09 | 北京知道创宇信息技术有限公司 | 虚拟奖品分配方法、装置及电子设备 |
JP2019022691A (ja) * | 2018-09-21 | 2019-02-14 | 株式会社コナミデジタルエンタテインメント | 情報処理装置、プログラム、情報処理システム |
CN110833696A (zh) * | 2019-11-06 | 2020-02-25 | 网易(杭州)网络有限公司 | 玩家排名方法与装置、存储介质、电子设备 |
CN110898434A (zh) * | 2019-11-06 | 2020-03-24 | 上饶市中科院云计算中心大数据研究院 | 处理数据的方法、服务器、系统和计算机可读程序介质 |
CN111475224A (zh) * | 2020-03-31 | 2020-07-31 | 百度在线网络技术(北京)有限公司 | 对象排名方法、装置、设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8876607B2 (en) | Visual display of fantasy sports team starting roster data trends | |
CN107644085B (zh) | 体育赛事新闻的生成方法和装置 | |
CN109739903B (zh) | 一种排行榜数据的生成方法及相关装置 | |
US9135773B2 (en) | Bingo apparatus | |
DE102013212482B4 (de) | System, Verfahren und Computerprogrammprodukt zum Bestimmen, ob Parameterkonfigurationen vorbestimmte Kriterien erfüllen | |
US9566521B2 (en) | Method and device for managing character information of sports game | |
CN107391108B (zh) | 一种通知栏信息修正方法及其装置、电子设备 | |
CN111760295A (zh) | 信息处理方法、装置、计算机可读介质及电子设备 | |
CN112492346A (zh) | 确定游戏视频中精彩时刻的方法和游戏视频的播放方法 | |
EP1462970A2 (en) | Pairing apparatus, method, and program | |
CN112494954A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP7293173B2 (ja) | 情報処理装置、及び、ゲームプログラム | |
CN111659125A (zh) | 基于游戏的好友推荐方法、装置及计算机可读存储介质 | |
CN114650239A (zh) | 一种数据的刷量识别方法、存储介质和电子设备 | |
CN106528525B (zh) | 一种识别排行榜作弊的方法和装置 | |
JP7335739B2 (ja) | ゲームを提供するためのシステム、方法、及びプログラム | |
JP6199522B1 (ja) | ゲーム提供装置及びゲーム提供プログラム | |
CN111905378A (zh) | 一种数据更新系统、数据更新方法和服务器 | |
CN111558219A (zh) | 基于游戏的逻辑分服方法、装置以及服务端设备 | |
CN112023383A (zh) | 智能自动结算系统 | |
CN116795847A (zh) | 一种获取排行榜的方法及系统及装置及介质 | |
CN110825939A (zh) | 帖子的分数生成、排序方法、装置、电子设备及存储介质 | |
CN113485924B (zh) | 游戏测试方法、装置、设备、存储介质 | |
CN114470785A (zh) | 游戏账号匹配方法、装置及电子设备 | |
CN110851661B (zh) | 用户id映射关系的确定方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |