CN112307059A - 一种排行榜管理方法、装置、计算机设备和存储介质 - Google Patents

一种排行榜管理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112307059A
CN112307059A CN202011193876.4A CN202011193876A CN112307059A CN 112307059 A CN112307059 A CN 112307059A CN 202011193876 A CN202011193876 A CN 202011193876A CN 112307059 A CN112307059 A CN 112307059A
Authority
CN
China
Prior art keywords
data information
ranking
ranking list
buffer
nodes
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.)
Granted
Application number
CN202011193876.4A
Other languages
English (en)
Other versions
CN112307059B (zh
Inventor
王淇峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011193876.4A priority Critical patent/CN112307059B/zh
Publication of CN112307059A publication Critical patent/CN112307059A/zh
Application granted granted Critical
Publication of CN112307059B publication Critical patent/CN112307059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种排行榜管理方法、装置、计算机设备和存储介质;本申请实施例可以接收终端发送的排行榜查询请求,排行榜查询请求携带排行榜排序区间;在服务器的第一缓存器中查找排行榜排序区间对应的数据信息,第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;若在第一缓存器中未查找到数据信息,则查找排行榜排序区间的各排名对应的存储节点;在服务器的数据库中加载存储节点的数据信息至第一缓存器;将第一缓存器中的数据信息发送给终端,以使得终端显示排行榜查询请求对应的数据信息。从而将排行榜的数据信息存储在缓存器中减少对内存的占用,提高了处理器的运行速度,以及基于存储节点可以实现精确查询数据信息。

Description

一种排行榜管理方法、装置、计算机设备和存储介质
技术领域
本发明涉及通信技术领域,具体涉及一种排行榜管理方法、装置、计算机设备和存储介质。
背景技术
终端上的大部分应用软件设置有排行榜功能,服务器可以根据终端上应用软件实际场景需要,基于用户账号的积分或者对视频的播放次数等对用户账号进行排行,以便用户可以根据排行榜查看排名靠前的用户账号的排名情况,以及该用户账号相关的信息。
目前,在生成排行榜的过程中,以游戏应用为例,服务器遍历存储有在游戏应用上已经注册的所有用户账号信息的数据库,查询并读取数据进行排序,并将有关的数据存储在内存中,以及将内存中的数据发送给终端显示。当排行榜的容量较大时,由于排行榜有关的所有数据都存储在内存中,会占用较多的内存,并且遍历数据库查找信息,导致服务器对数据信息查询的处理速度慢,使得终端基于数据显示排行榜效率低。
发明内容
本发明实施例提供一种排行榜管理方法、装置、计算机设备和存储介质,可以基于存储节点精确查询数据信息,提高了对数据信息查询的效率和准确性,以及,通过第一缓存器缓存数据信息,减少对内存的占用。
本发明实施例提供一种排行榜管理方法,包括:
接收终端发送的排行榜查询请求,所述排行榜查询请求携带排行榜排序区间;
在服务器的第一缓存器中查找所述排行榜排序区间对应的数据信息,所述第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;
若在所述第一缓存器中未查找到所述数据信息,则查找排行榜排序区间的各排名对应的存储节点;
在所述服务器的数据库中加载所述存储节点的数据信息至所述第一缓存器;
将所述第一缓存器中的所述数据信息发送给所述终端,以使得所述终端显示所述排行榜查询请求对应的所述数据信息。
相应的,本实例还提供一种排行榜管理装置,包括:
接收单元,用于接收终端发送的排行榜查询请求,所述排行榜查询请求携带排行榜排序区间;
查找单元,用于查找所述排行榜查询请求所需要的数据信息;
加载单元,用于在所述服务器的数据库中加载所述存储节点的数据信息至所述第一缓存器;
发送单元,用于将所述第一缓存器中的所述数据信息发送给所述终端。
相应的,本实施例还提供一种计算机设备,包括:处理器、存储器和缓存器,所述存储器存储有代码程序,所述处理器用于处理所述代码程序,以执行本申请实施例中所提供的排行榜实现方法的所有操作。
相应的,本实施例还提供一种存储介质,、所述存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本申请实施例所提供的排行榜管理方法。
本申请实施例可以接收终端发送的携带排行榜排序区间的排行榜查询请求,以便在第一缓存器中查找与排行榜排序区间对应的数据信息,当在第一缓存器中未查找到数据信息时,可以查找排行榜排序区间的各排名对应的存储节点,以及在服务器的数据库中加载存储节点的数据信息至第一缓存器,此时可以将第一缓存器中的数据信息发送给终端,以使得终端显示排行榜查询请求对应的数据信息。该方案可以先查询缓存器中是否有排行榜查询请求所需要的数据信息,若数据信息不在缓存器中,则根据排行榜排序区间找到对应的存储节点,从数据库中加载存储节点的数据信息至第一缓存器中,基于存储节点查找数据信息可以实现精确查询数据信息,排行榜查询请求所需要的数据信息存储在缓存器中减少了对内存的占用,提高了服务器对数据信息查询的处理速度。基于存储节点精确查询数据信息,提高了对数据信息查询的效率和准确性,以及,通过第一缓存器缓存数据信息,减少对内存的占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得的其他附图。
图1是本申请实施例提供的排行榜管理方法的场景示意图;
图2是本申请实施例提供的排行榜管理方法的流程示意图;
图3是本申请实施例提供的排行榜管理方法的一种树结构的示意图;
图4是本申请实施例提供的排行榜管理方法的另一流程示意图;
图5是本申请实施例提供的排行榜管理方法的又一流程示意图;
图6是本发明实施例提供的排行榜管理方法在游戏应用的用户界面的示意图;
图7是本申请实施例提供的排行榜管理方法在游戏应用的另一用户界面的示意图;
图8是本申请实施例提供的红黑树结构的示意图;
图9是本申请实施例提供的排行榜管理装置的示意图;
图10是本申请实施例提供的服务器结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种排行榜管理方法、装置、计算机设备和存储介质。该排行榜管理装置可以集成在计算机设备中,该计算机设备可以是服务器。
例如,如图1所示,服务器在接收终端发送的排行榜查询请求后,在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,若在该第一缓存器中未查找到该数据信息,则查找排行榜排序区间的各排名对应的存储节点,然后,在数据库中加载该存储节点的数据信息至第一缓存器,最后,将该第一缓存器中的数据信息发送给该终端,以使得终端显示其发送的排行榜查询请求对应的该数据信息。
其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。该终端可以是手机、平板电脑、笔记本电脑、台式电脑、或者可穿戴设备等。
其中,数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、以及删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从排行榜管理装置的角度进行描述,该排行榜装置具体可以集成在服务器中。
一种排行榜管理方法,包括:接收终端发送的排行榜查询请求,该排行榜查询请求携带排行榜排序区间;在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;若在该第一缓存器中未查找到该数据信息,则查找排行榜排序区间的各排名对应的存储节点;在该服务器的数据库中加载该存储节点的数据信息至该第一缓存器;将该第一缓存器中的该数据信息发送给该终端,以使得该终端显示该排行榜查询请求对应的该数据信息。
如图2所示,该排行榜管理方法的具体流程可以如下:
101、接收终端发送的排行榜查询请求,该排行榜查询请求携带排行榜排序区间。
其中,排序区间可以是排名范围,该排名可以是用户账号在某个应用程序的排名,排序区间的数值可以表示一个排名,例如,当排序区间为[100-200]时,排名范围是第100名至第200名,100至200范围内(包括100和200)的整数数值可以表示其中的一个排名。
例如,具体可以是接收终端发送的基于用户在终端上的用户界面内,点击排行榜查询按键生成的排行榜查询请求,或者通过设置排行榜更新频率,此时可以接收终端定时发送的排行榜查询请求,或者是在终端检测到终端的用户账号信息变化时,接收终端发送的排行榜查询请求。
其中,该排行榜查询请求可以携带排行榜排序区间,比如可以是用户在终端上触发排行榜查询请求时,在该终端显示的用户界面内输入所要查询的排行榜排序区间,输入方式可以是手机、平板电脑、笔记本电脑或者个人计算机等终端的键盘输入,或者在用户界面上对预设的数值或数值范围进行选择,将选择的数值或者数值范围设置为排行榜排序区间,比如若第一个选择的数值是1,第二个选择的数值是100,或者选择的是1-100的数值范围,则排行榜排序区间为1-100,该预设的数值、数值范围可以由运维人员预先进行设置;或者是根据发送排行榜查询请求的终端对应的用户账号的排名,将该排名的前预设名数和后预设名数作为排行榜排序区间。比如,若用户的排名为30,前预设名数为10,后预设名数为10,则排行榜排序区间为20-40,该预设名数可以跟据实际需要灵活设置,排行榜排序区间可达到千万级别。
102、在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息。
其中,数据信息可以包括排行榜排序区间的各个排名对应的用户账号信息;数据库可以存储该数据信息,历史数据信息可以包括,在接收到步骤101的排行榜查询请求之前,接收到的历史排行榜查询请求,基于历史排行榜查询请求访问数据库查询并加载至第一缓存器的数据信息。
如果历史请求的排行榜排序区间与步骤101中接收的排行榜查询请求携带的排行榜排序区间有交叉部分,且该在第一缓存器中交叉部分的数据信息没有被其他数据信息替换,则在历史数据信息中可以找到步骤101中接收到的排行榜查询请求所需要的全部数据信息或者部分数据信息;另外,缓存器的读取速度快于内存,可以提高查找数据信息的效率;所以,在接收到排行榜查询请求后,查找第一缓存器中是否存在步骤101中接收的排行榜查询请求所携带的排序区间对应的数据信息。
其中,由于第一缓存器容量有限,当有新数据需要缓存时,存储在第一缓存器中的数据信息会被新数据替换。可以通过最久未使用算法(Least Recently Used,LRU)选择被替换的数据块,LRU算法是一种内存淘汰算法,依据各数据块的被访问情况,选择最长时间未被访问的数据块进行替换。
其中,内存淘汰算法除了LRU算法,还有随机算法(Rand)、先进先出算法(First InFirst Out,FIFO)、和最不经常使用算法(Least Frequently Used,LFU),缓存器内存的替换方式可以根据获取数据的特点和实际应用的需要进行选择。
如果在第一缓存器中,查找到步骤101中接收到的排行榜查询请求所需要的数据信息,直接将数据信息发送给终端,即步骤“在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息”之后,该排行榜管理方法还包括:
若在第一缓存器中查找到数据信息,将第一缓存器中的数据信息发送给终端。
由于第一缓存器带有内存淘汰算法,为防止第一缓存器中的排行榜查询请求所需要的数据信息被替换,可以先将数据信息进行保存,即步骤“若在该第一缓存器中查找到该数据信息,将第一缓存器中的数据信息发送给该终端”,具体可以是:
复制该数据信息至第二缓存器,该第二缓存器可以存储该第一缓存器中该行榜排行榜查询请求对应的数据信息,将第二缓存器中的该数据信息发送给终端。
可选的,若在第一缓存器中查找到排行榜查询请求携带的排行榜排序区间的全部排名的用户账号信息,则直接将查找的排行榜查询请求所需要的全部数据信息发送给终端。若在第一缓存器中查找到排行榜查询请求携带的排行榜排序区间的部分排名的用户账号信息,则将该部分排名对应的用户账号信息复制至第二缓存器。
其中,将第二缓存器的数据信息发送给终端之后,为了减少内存的占用,可以把第二缓存器中的数据信息删除,即步骤“复制该数据信息至第二缓存器,该第二缓存器用于存储该第一缓存器中该行榜排行榜查询请求对应的数据信息,该第二缓存器中的该数据信息发送给该终端”之后,还包括:
删除该第二缓存器中的该数据信息。
103、若在第一缓存器中未查找到数据信息,则查找排行榜排序区间的各排名对应的存储节点。
例如,在步骤102中,在第一缓存器中没有查找到步骤101中接收到的排行榜查询请求所需要的数据信息,依据排名找到该排名的存储节点。
其中,存储节点可以为树结构上的节点,存储节点可以对应一个排名和该排名对应的用户账号信息;树结构包括至少一层存储节点,树结构可以是二叉查找树,或者是红黑树。
其中,红黑树(Red Black Tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树是一种特化的平衡二叉树,在进行插入和删除操作时通过特定操作保持树的平衡,从而获得较高的查找性能。
存储节点的查找方式具体可以如下:
按照预设顺序,查找树结构上排行榜排序区间的各排名对应存储节点。
其中,预设顺序可以根据实际需要进行灵活设置,例如,以树的根节点所在的层数为第一层,从上往下,依次是第二层、第三层,以此类推。可以从树的根节点开始查找,判断根节点是否为存储节点,若是,则找到存储节点。若否,判断存储节点是在根节点的左子树上,还是在根节点的右子树上。若在左子树上,判断左子树上第二层的节点是否为存储节点,若是,则找到存储节点;若否,判断存储节点是在该第二层节点的左子树上,还是在该第二层节点的右子树上,以此类推,直到找到存储节点。
可选的,可以按照左子树、根节点、右子树的顺序进行查找。如图3所示,依次判断节点H、D、I、B、J、E、K、A、L、F、M、C、G是否为存储节点。
其中,判断节点是否为存储节点,或者存储节点在以该节点为根节点的左子树上,或是在以该节点为根节点的右子树上,具体可以如下:
获取树结构节点的节点总数,该节点总数包括以该节点为根节点的左子树的第一节点总数、右子树的第二节点总数和该节点,将排名对应的数值与节点总数比较,排名对应的数值与节点的第一节点总数+1相等,则该节点为存储节点;若排名对应的数值小于节点的第一节点总数+1,则存储节点在以该节点为根节点的左子树上;若排名对应的数值大于节点的第一节点总数+1,则存储节点在以该节点为根节点的右子树上。
其中,节点总数如图3所示,根节点A的节点总数为根节点的左子树的第一节点总数和右子树的第二节点总数之和加上根节点本身,即根节点的节点总数为13;节点B的节点总数为7。
以从根节点开始查找的顺序为例,获取根节点A的左子树的第一节点总数,即节点B的节点总数,节点总数为7;将排名对应的数值和该节点总数7进行比较,若该节点总数+1等于该排名对应的数值,则根节点A为存储节点。
若大于,则存储节点在根节点A的左子树上,将排名对应的数值与以节点B为根节点的第一节点总数比较,即节点D的节点总数,节点总数为3,比较方法同根节点A的比较方法;若B不是存储节点,根据比较结果,在第三层上继续查找。
若小于,则存储节点在根节点A的右子树上,根节点A和左子树上的节点(B、D、E、H、I、J、K)都小于该排名对应的值,将该排名减去左子树的第一节点总数(7)减去1(根节点)的值,与以节点C为根节点的左子树的第一节点总数(即节点F的节点总数)比较,比较方法同根节点的比较方法;若节点C不是存储节点,根据比较结果,在第三层上继续查找。以此类推,直到找到该排名对应的存储节点。
可选的,可以通过递归计算左子树的第一节点总数,每次查询一个节点,进行一次递归计算以该节点的左子树的第一节点总数。
可选的,保存上一次递归计算的结果,下一次查找时利用保存的计算结果进行计算,减少计算时间。
比如,查询根节点时,通过递归查找得到根节点的左子树的第一节点总数z,即以A节点为根节点的树的节点总数为z,保存z。当下一次查询根节点时,不需要再次通过递归计算得到根节点的左子树的第一节点总数,利用保存的A节点的节点总数z作为比较的数据,对于其他节点也适用该方法,在此不做赘述。
可选的,预先计算每个节点以该节点为根节点的树的节点总数,并将计算结果进行保存,查找时直接利用保存的数据进行比较。
可选的,当检测到数据库的数据信息发生变化时,更新树结构的节点总数。
例如,排名依据的是用户的等级(即用户账号的等级),当用户的等级改变,排名发生变化,导致该用户和其他用户对应的存储节点变化时,更新该变化的存储节点的节点总数。
可选的,如图5所示,当有多个终端发送排行榜查询请求查询同个用户账号信息时,由于前一个排行榜查询请求,该用户账号信息已经被查找到并在加载中,此时,再去数据库中查找同个用户账号信息,增加了排行榜查询请求得到回复的时间。
如果终端发送的排行榜查询请求所需要的数据信息中部分或者全部数据信息在第一缓存器中没有找到,则查询这些数据信息是否正在加载中;正在加载中的,等待加载完成;不在加载中的,在数据库中查找该数据信息所在的存储节点。
可选的,如图5所示,当有多个终端发送排行榜查询请求,查询同一个用户账号信息时,为了确保每个排行榜查询请求都能获得所查询的用户账号信息,可以记录查询该用户账号信息的终端对应的用户的用户标识符(Identity document,ID),用户ID是每个用户的识别信息,用于标识发起排行榜查询请求的用户。以及,记录该用户账号信息被查询的次数。
104、在该服务器的数据库中加载该存储节点的数据信息至该第一缓存器。
例如,在步骤103中,在数据库中找到查找到排名对应的存储节点后,可以将该存储节点的用户账号信息加载到第一缓存器中。
105、将第一缓存器中的该数据信息发送给该终端,以使得该终端显示该排行榜查询请求对应的该数据信息。
例如,步骤103将数据信息加载至第一缓存器,发送该数据信息给终端,终端基于该数据信息向用户展示排行榜信息。
可选的,在步骤103中有多个终端发送排行榜查询请求,查询同一个用户账号信息,保存查询该用户账号信息的用户ID,在将该数据信息发送给终端之前,查询该用户ID对应的排行榜查询请求所需要的数据信息是否都在第一缓存器中,若数据信息都在第一缓存中,将排行榜查询请求所需要的数据信息发送给终端,终端基于该数据信息显示排行榜。
可选的,由于缓存器带有内存淘汰算法,为防止第一缓存器中的排行榜查询请求所需要的数据信息被替换,可以先将数据信息进行保存,即步骤“将该第一缓存器中的该数据信息发送给该终端,以使得该终端显示排行榜查询请求对应的所述数据信息”,具体可以是:
复制该数据信息至第二缓存器,该第二缓存器用于存储该第一缓存器中该行榜排行榜查询请求对应的数据信息,该第二缓存器中的该数据信息发送给该终端。
可选的,若在步骤102中,将排行榜查询请求所需要的数据信息复制至第二缓存器中,在步骤103中有多个用户查询同一个用户账号信息,保存查询该用户账号信息的用户ID,在将该数据信息发送给终端之前,查询该用户ID发起的排行榜查询请求所需要的数据信息是否都在第二缓存器中,若数据信息都在第一缓存中,将排行榜查询请求所需要的数据信息发送给终端,终端基于该数据信息显示排行榜。
其中,将第二缓存器的数据信息发送给用户之后,为了减少内存的占用,可以把第二缓存器中的数据信息删除,如图5所示,即步骤“复制该数据信息至第二缓存器,该第二缓存器用于存储该第一缓存器中该行榜排行榜查询请求对应的数据信息,该第二缓存器中的该数据信息发送给该终端”之后,还包括:
删除第二缓存器中的该数据信息。
可选的,在步骤103中,可选的,在步骤103中有多个终端发送排行榜查询请求,查询同一个用户账号信息,保存查询该用户账号信息的用户ID和记录该用户账号信息被查询的次数,将第二缓存器中的数据信息发送给终端后,删除保存的排行榜查询请求已被回复的用户ID,并将该用户账号信息的被查询次数减去1;判断被查询次数是否为零,若是,删除第二缓存器中的用户账号信息。
由上可知,本实施例在接收到终端发送的携带排行榜排序区间的排行榜查询请求后,在服务器的第一缓存器中查找排行榜排序区间对应的数据信息,若在第一缓存器中没有找到该数据信息,查找该排序区间的各排名对应的存储节点,在该服务器的数据库中,加载该存储节点对应的用户账号信息到第一缓存器中,将第一缓存器中的该数据信息发送给该终端,以使得该终端显示该排行榜查询请求对应的该数据信息。本实施例可以基于存储节点可以实现精确查找数据信息,排行榜查询请求所需要的数据信息存储在缓存器中减少了对内存的占用,提高了处理器的计算速度。
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该排行榜管理方法在游戏应用中的应用为例进行说明。
如图4所示,一种排行榜管理方法,具体流程可以如下:
201、接收游戏应用注册用户所在的终端发送的排行榜查询请求,该排行榜查询请求携带排行榜排序区间。
其中,如图6所示,排行榜查询请求可以是游戏应用注册用户(即游戏用户)在游戏用户界面点击按钮,触发排行榜查询请求;或者通过设置定时更新游戏的排行榜,触发排行榜查询请求;或者是该游戏用户结束一局游戏后,用户账号信息发生变化,该游戏用户所在的终端发送排行榜查询请求。
其中,排行榜排序区间可以是游戏用户在游戏界面预设的搜索框中输入想要查询的排行榜排序区间,或者游戏用户在游戏界面对预设的排行榜排序区间进行选择,或者是在预设的数字范围选择所要查询的排行榜排序区间的起点和终点,也可以是游戏用户点击排行榜查询请求,将该游戏用户的排名的前预设名数和后预设名数作为排行榜排序区间,比如发送该排行榜查询请求的终端对应的游戏用户的排名为30,则查询排名20-40的游戏用户的数据信息,或者排名为10-50的游戏用户的数据信息。
输入方式可以根据发送排行榜查询请求的终端的不同进行设置,在此不作赘述。
202、在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息。
其中,数据信息可以包括排行榜排序区间的各个排名对应的用户账号信息,如图7所示,用户账号信息可以包括排名、玩家的昵称、积分以及等级等,显示的用户账号信息可以根据实际应用场景需要进行设置,在此不做限定。
数据库可以存储该数据信息;历史数据信息可以包括,在接收到步骤201的排行榜查询请求之前,接收到的排行榜查询请求,即历史请求,访问数据库加载至第一缓存器的数据信息。
比如,在游戏用户A所在终端发送排行榜查询请求之前,游戏用户B发送了排行榜查询请求,如果游戏用户B在终端触发的排行榜查询请求的排行榜排序区间为[100-300],游戏用户A在终端触发的排行榜查询请求的排行榜排序区间为[200-500],游戏用户A和游戏用户B所触发的排行榜查询请求的排序区间有重叠部分,则第一缓存器中存在用户A触发的排行榜查询请求所需要的部分数据信息。
因此,在接收到排行榜查询请求后,在第一缓存器的历史数据信息中查找在步骤201中接收的排行榜查询请求的排序区间对应的数据信息。
203、若第一缓存器中查找到排行榜排序区间对应的全部数据信息,则该数据信息发送给该游戏应用注册用户所在终端,以使得该终端显示该排行榜查询请求对应的数据信息。
例如,若步骤201中所接收到的排行榜查询请求所需要的全部数据信息,即排行榜查询请求所携带的排序区间对应的各排名的用户账号信息,都可以在第一缓存器中查找到,将该数据信息发送给终端,终端将基于该数据信息形成的排行榜展示给游戏用户。
204、若在第一缓存器中查找到排行榜排序区间对应的部分数据信息,则复制该部分数据信息至第二缓存器,然后执行步骤205。
其中,部分数据信息可以是排行榜排序区间对应的部分排名的用户账号信息。
例如,排行榜排序区间为[200-500],在第一缓存器中,只查找到排名为200-300的用户账号信息,排名为301-500的用户信息没有查找到。
由于第一缓存器带有内存淘汰算法,为防止第一缓存器中的排行榜查询请求所需要的用户账号信息被替换,可以先将该部分数据信息至第二缓存器进行保存。
其中,内存淘汰算法的具体内容参考前面实施例,在此不做赘述。
205、在数据库中查找在第一缓存器中没有查找到的数据信息对应的存储节点,然后执行步骤206。
例如,在步骤204中,在第一缓存器中只查找到在步骤201中接收到的排行榜查询所携带的排行榜排序区间对应的部分排名的用户账号信息,没有查找到的用户账号信息的排名,找到该排名的存储节点。
其中,存储节点可以为树结构上的节点,存储节点可以对应一个排名和该排名对应的用户账号信息;树结构包括至少一层存储节点,树结构可以是二叉查找树,或者是红黑树,存储节点的查找方式具体可以如下:
按照预设顺序,查找树结构上排行榜排序区间的各排名对应的存储节点。
预设顺序和查找方法参考前面实施例,在此不作赘述。
下面以红黑树的根节点开始查找,查找排名为5-7为例,如图8所示,进行详细说明:
红黑树(Red Black Tree)的左子树上所有节点的数据值均小于根节点的数据值,右子树上所有节点的数据值均大于根节点的数据值,左、右子树本身也是一棵红黑树。
比如,查找排名为5的游戏用户的用户账号信息,每个圆代表一个存储节点,圆中上方数值具体是进行排名的依据,这里以积分为例。首先查找根节点A,即积分为13的节点,计算该节点左子树的节点总数,一共有4个节点,即积分为13的排名为第5名,所以该根节点A为排名第5名对应的存储节点;易知,第6名对应的存储节点在根节点A的右子树上,在该右子树上排名为1的节点,即第6名对应的存储节点,积分17的节点的左子树有1个节点,即该节点C在右子树上排名为2,2>1,所以第6名的存储节点在积分为17的节点C的左子树上,积分15的节点G的左子树为空,所以积分为15的节点G在根节点的右子树上排名为1,积分15的节点G为第6名对应的存储节点;易知,积分为17的节点C为第7名对应的存储节点;其他排名的查找方式相同,在此不做赘述。
可选的,通过排名可以查找到该排名对应的用户账号信息,也可以根据游戏用户的积分确定其排名,假设该游戏用户的积分为x,排名为y。如果积分x与根节点A对应的积分相等,则积分x所在的节点为根节点A,y为根节点A的排名,即B的节点总数+1。
若积分x小于根节点对应的积分值,则积分x所在的节点在根节点A的左子树上,将积分x与节点B对应的积分进行比较,若相等,则排名y为D节点的节点总数+1;若积分x小于节点B对应的积分,将积分x与节点D对应的积分作比较;若积分x大于节点B对应的积分,将积分x与节点E对应的积分作比较。
若积分大于根节点对应的积分值,则积分x所在的节点在根节点A的右子树上,根节点A和根节点A的左子树上的所有节点对应的积分都小于积分x,将积分x与节点C对应的积分进行比较;若相等,排名y为B的节点总数+1(根节点)+1;若积分x小于节点C对应的积分,将积分x与节点F对应的积分作比较;若积分x大于节点B对应的积分,将积分x与节点G对应的积分作比较。以此类推,直到查询到对应的节点,获得排名。
可选的,可以通过递归计算左子树的第一节点总数,每次查询一个节点,进行一次递归计算以该节点的左子树的第一节点总数。
可选的,保存上一次递归计算的结果,下一次查找时利用保存的计算结果进行计算,减少计算时间。
比如,如图8所述,圆中下方的数值是以该节点为根节点的树的节点总数。
查询根节点时,通过递归查找得到根节点A的左子树的第一节点总数为4,即以积分为8的节点B为根节点的树的节点总数为4,保存4。当下一次查询根节点A时,不需要再次通过递归计算得到根节点A的左子树的第一节点总数,利用保存的积分为8的节点B的节点总数4作为比较的数据,对于其他节点也适用该方法,在此不做赘述。
可选的,预先计算每个节点以该节点为根节点的树的节点总数,并将计算结果进行保存,查找时直接利用保存的数据进行比较。
可选的,当游戏用户结束游戏后,积分发生变化,当检测游戏用户的积分变化时,若其排名发生变化,引起其他游戏用户的排名变化时,重新计算发生变化的存储节点的节点总数,并更新节点总数。
可选的,当有多个终端发送排行榜查询请求查询同个用户账号信息时,由于前一个排行榜查询请求,该用户账号信息已经被查找到并在加载中,此时,再去数据库中查找同个用户账号信息,增加了排行榜查询请求得到回复的时间。
如果终端发送的排行榜查询请求所需要的数据信息中部分或者全部数据信息在第一缓存器中没有找到,则查询这些数据信息是否正在加载中;正在加载中的,等待加载完成;不在加载中的,在数据库中查找该数据信息所在的存储节点。
可选的,当有多个终端发送排行榜查询请求,查询同一个用户账号信息时,为了确保每个排行榜查询请求都能获得所查询的用户账号信息,可以记录查询该用户账号信息的终端对应的用户的用户标识符(Identity document,ID)和查询请求,用户ID是每个用户的识别信息,用于标识发起排行榜查询请求的用户。以及,记录该用户账号信息被查询的次数。服务器在其数据库中加载该存储节点的数据信息至该第一缓存器。
206、在服务器的数据库中加载该存储节点的数据信息至该第一缓存器,然后执行步骤207。
例如,在步骤205中,在数据库中找到查找到排名为5-7对应的存储节点后,将第5-7名对应的存储节点的用户账号信息加载到第一缓存器中。
207、将加载到第一缓存器中的数据信息复制至第二缓存器,然后执行步骤208。
由于缓存器带有内存淘汰算法,为防止第一缓存器中的排行榜查询请求所需要的用户账号信息被替换,可以先将数据信息进行保存
208、将第二缓存器中的该数据信息发送给该游戏应用注册用户所在终端,以使得该终端显示该排行榜查询请求对应的数据信息。
可选的,在步骤205中有多个终端发送排行榜查询请求,查询同一个用户账号信息,保存查询该用户账号信息的用户ID,在将该数据信息发送给终端之前,查询保存的用户ID发起的排行榜查询请求所需要的数据信息是否都在第二缓存器中,若数据信息都在第二缓存中,将排行榜查询请求所需要的数据信息发送给终端,终端基于该数据信息显示排行榜;若有部分数据信息不在第二缓存中,则等待数据信息加载完成。
其中,将第二缓存器的数据信息发送给用户之后,为了减少内存的占用,可以把第二缓存器中的数据信息删除,即步骤“208、将第二缓存器中的该数据信息发送给该游戏应用注册用户所在终端,以使得该终端显示该排行榜查询请求对应的数据信息。”之后,还包括:
删除第二缓存器中的该数据信息。
可选的,在步骤205中,有多个终端发送排行榜查询请求,查询同一个用户账号信息,保存查询该用户账号信息的用户ID,以及记录该用户账号信息被查询的次数,将第二缓存器中的数据信息发送给终端后,删除保存的排行榜查询请求已被回复的用户ID,并将该用户账号信息的被查询次数减去1;判断被查询次数是否为零,若是,删除第二缓存器中的用户账号信息。
由上可知,本实施例在服务器接收到游戏应用注册用户所在终端发送的携带排行榜排序区间的排行榜查询请求后,在第一缓存器中查找排行榜排序区间对应的数据信息,若第一缓存器中查找到排行榜排序区间对应的全部数据信息,将第一缓存器中的该数据信息发送给该游戏应用注册用户所在终端,以使得该终端显示该排行榜查询请求对应的数据信息;若在第一缓存器中查找到排行榜排序区间对应的部分数据信息,则复制该部分数据信息至第二缓存器,查找排行榜排序区间的各排名对应的存储节点,在数据库中加载该存储节点的数据信息至该第一缓存器,将第一缓存器中的该数据信息发送给该游戏应用注册用户所在终端,以使得该终端显示该排行榜查询请求对应的数据信息。本实施例可以基于存储节点可以实现精确查找数据信息提高了对数据信息查询的效率和准确性,以及,通过第一缓存器缓存数据信息,减少对内存的占用,提高了处理器的计算速度。
为了更好地实施以上方法,本申请实施例还提供一种排行榜管理装置,如图9所示,该排行榜管理装置可以包括接收单元301、查找单元302、加载单元303和发送单元304,如下:
(1)接收单元301;
接收单元301,用于接收终端发送的排行榜查询请求。
例如,具体可以是接收基于用户在终端上的用户界面点击排行榜查询按键,终端发送的排行榜查询请求,或者通过设置排行榜更新频率,终端定时发送的排行榜查询请求,或者是终端检测到终端的用户账号信息变化,发送的排行榜查询请求。
其中,该排行榜查询请求可以携带排行榜排序区间,比如可以是用户在终端上触发排行榜查询请求时,在该终端显示的用户界面内输入所要查询的排行榜排序区间,输入方式可以是终端的键盘输入,或者在用户界面上对预设的数值或数值范围进行选择,将选择的数值或者数值范围设置为排行榜排序区间,该预设的数值、数值范围可以由运维人员预先进行设置;或者是根据发送排行榜查询请求的终端对应的用户的排名,将该排名的前预设名数和后预设名数作为排行榜排序区间。该预设名数可以跟据实际需要灵活设置,排行榜排序区间可达到千万级别。
(2)查找单元302;
查找单元302,用于查找该排行榜查询请求所需要的数据信息。
例如,该查找单元302可以包括第一查找子单元和第二查找子单元,其中:
该第一查找子单元,用于在第一缓存器中查找接收单元301接收到的排行榜排行榜查询请求所需要的数据信息。
例如,在接收单元301接收到排行榜查询请求后,该第一查找子单元,在第一缓存器的历史数据信息中查找在接收到的排行榜查询请求的排序区间对应的数据信息,其中排序区间对应的数据信息包括排序区间各排名对应的用户账号信息。
该第二查找子单元,用于在服务器的数据库中查找接收单元301接收到的排行榜查询请求所需要的数据信息。
例如,第一查找子单元在第一缓存器中没有找到接收子单元接收到的排行榜查询请求所需要的数据信息,第二查找子单元依据排名找到该排名的存储节点。
其中,存储节点为树结构上的节点,树结构包括至少一层存储节点,树结构可以是二叉查找树,或者是红黑树,具体可以如下:
按照预设顺序,查找树结构上排行榜排序区间的各排名对应存储节点。
其中,预设顺序可以根据实际需要进行灵活设置,例如,以树的根节点所在的层数为第一层,从上往下,依次是第二层、第三层,以此类推。可以从树的根节点开始查找,判断根节点是否为存储节点,若是,则找到存储节点。若否,判断存储节点是在根节点的左子树上,还是在根节点的右子树上。若在左子树上,判断左子树上第二层的节点是否为存储节点,若是,则找到存储节点;若否,判断存储节点是在该第二层节点的左子树上,还是在该第二层节点的右子树上,以此类推,直到找到存储节点。
可选的,可以按照左子树、根节点、右子树的顺序进行查找。如图3所示,依次判断节点H、D、I、B、J、E、K、A、L、F、M、C、G是否为存储节点。
其中,判断节点是否为存储节点,或者存储节点在以该节点为根节点的左子树上,或是在以该节点为根节点的右子树上,具体可以如下:
获取树结构节点的节点总数,该节点总数包括以该节点为根节点的左子树的第一节点总数、右子树的第二节点总数和该节点,将排名对应的数值与节点总数比较,排名对应的数值与节点的第一节点总数+1相等,则该节点为存储节点;若排名对应的数值小于节点的第一节点总数+1,则存储节点在以该节点为根节点的左子树上;若排名对应的数值大于节点的第一节点总数+1,则存储节点在以该节点为根节点的右子树上。
可选的,可以通过递归计算左子树的第一节点总数,每次查询一个节点,进行一次递归计算以该节点的左子树的第一节点总数。
可选的,保存上一次递归计算的结果,下一次查找时利用保存的计算结果进行计算,减少计算时间。即可选的,该第二查找子单元还可以包括记录子单元,如下:
该节点子单元,用于保存上一次递归计算的结果,下一次查找时利用保存的计算结果进行计算,减少计算时间。
比如,查询根节点时,通过递归查找得到根节点的左子树的第一节点总数z,保存z。当下一次查询根节点时,不需要再次通过递归计算得到根节点的左子树的第一节点总数,利用保存节点总数z作为比较的数据,对于其他节点也适用该方法,在此不做赘述。
可选的,除了可以保存上一次计算的节点数,还可以预先将所有节点的以该节点为根节点的树的节点数,即可选的,在本申请的一些实施例中,该节点子单元,还可以用于:
预先计算每个节点以该节点为根节点的树的节点总数,并将计算结果进行保存,查找时直接利用保存的数据进行比较。
可选的,在本申请的一些实施例中,该节点子单元,还可以用于当检测到数据库的数据信息发生变化时,更新树结构的节点总数。
可选的,当有多个终端发送排行榜查询请求,查询同个用户账号信息时,由于前一个排行榜查询请求,该用户账号信息已经被查找到并在加载中,此时,再去数据库中查找同个用户账号信息,增加了排行榜查询请求得到回复的时间。即可选的,该第二查找子单元还可以包括查询模块,如下,
该查询模块,用于如果终端发送的排行榜查询请求所需要的数据信息中部分或者全部数据信息在第一缓存器中没有找到,则查询这些数据信息是否正在加载中;正在加载中的,等待加载完成;不在加载中的,在数据库中查找该数据信息所在的存储节点。
可选的,该第二查找子单元还可以包括用户记录模块,该用户记录模块用于当有多个终端发送排行榜查询请求,查询同一个用户账号信息时,为了确保每个排行榜查询请求都能获得所查询的用户账号信息,可以记录查询该用户账号信息的终端对应的用户的用户ID,用于标识发起排行榜查询请求的用户。
可选的,该第二查找子单元还可以包括计数模块,该计数模块用于当有排行榜查询请求同一个用户账号信息时,计数单元计数增加1,当该用户账号信息发送给一个终端时,计数单元的计数减1。
(3)加载单元303;
加载单元303,用于在数据库中加载该排行榜查询请求的排序区间对应的数据信息至第一缓存器。
例如,第二查找子单元在数据库中找到查找到排名对应的存储节点后,将该存储节点的数据信息加载到第一缓存器中。
(4)发送单元304;
发送单元304,用于将该第一缓存器中的数据信息发送给该终端。
例如,加载单元303将数据信息加载至第一缓存器,发送单元发送该数据信息给终端,终端基于该数据信息向用户展示排行榜信息。
可选的,当有多个终端发送排行榜查询请求,查询同一个用户账号信息,查找单元302保存查询该用户账号信息的用户ID,在将该数据信息发送给终端之前,查询该用户ID发起的排行榜查询请求所需要的数据信息是否都在第一缓存器中,即可选的,该发送子单元还可以包括回调子单元,具体如下:
该回调子单元,用于查询该用户ID发起的排行榜查询请求所需要的数据信息是否都在第一缓存器中,若数据信息都在第一缓存中,将排行榜查询请求所需要的数据信息发送给终端,终端基于该数据信息显示排行榜。
可选的,由于缓存器带有内存淘汰算法,为防止第一缓存器中的排行榜查询请求所需要的数据信息被替换,可以先将数据信息进行保存,即可选的该发送单元还可以包括复制子单元,具体可以是:
复制该数据信息至第二缓存器,该第二缓存器可以存储该第一缓存器中排行榜查询请求对应的数据信息,并将该第二缓存器中的该数据信息发送给该终端。
可选的,若将排行榜查询请求所需要的数据信息复制至第二缓存器中,即可选的,在本申请的一些实施例中,该回调子单元,还可以用于查询该用户ID发起的排行榜查询请求所需要的数据信息是否都在第二缓存器中,若数据信息都在第二缓存器中,将排行榜查询请求所需要的数据信息发送给终端,终端基于该数据信息显示排行榜。
其中,将第二缓存器的数据信息发送给用户之后,为了减少内存的占用,可以把第二缓存器中的数据信息删除,即可选的,该发送子单元还可以包括删除模块,如下:
将第二缓存器的数据信息发送给用户之后,删除模块将第二缓存器中排行榜查询请求所需要的数据信息删除。
可选的,在本申请的一些实施例中,该删除模块,还可以用于,当第二查找子单元的计数子单元的计数为零时,删除第二缓存器中的计数为零的用户账号信息。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例在接收子单元接收到排行榜查询请求后,查找单元的第一查找子单元在第一缓存器中查找排行榜排序区间对应的数据信息,若第一查找子单元没有找到排行榜查询请求所需要的数据信息,第二查找子单元在数据库中查找该排序区间的各排名对应的存储节点,第二查找子单元查找到对应的存储节点后,加载单元将该存储节点的数据信息加载至第一缓存器中,发送单元将第一缓存器中数据信息发送给终端。本实施例基于存储节点进行查找可以实现精确查找数据信息,排行榜查询请求所需要的数据信息存储在缓存器中减少了对内存的占用,提高了服务器对数据信息查询的处理速度。
本申请实施例还提供一种计算机设备,该计算机设备可以是服务器,如图10所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图10中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
服务器还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收终端发送的排行榜查询请求,该排行榜查询请求携带排行榜排序区间;在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;若在该第一缓存器中未查找到该数据信息,则查找排行榜排序区间的各排名对应的存储节点;在该服务器的数据库中加载该存储节点的数据信息至该第一缓存器;将该第一缓存器中的该数据信息发送给该终端,以使得该终端显示该排行榜查询请求对应的数据信息。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由上可知,本实施例的服务器在接收到携带排行榜排序区间的排行榜查询请求后,在服务器的第一缓存器中查找排行榜排序区间对应的数据信息,若在第一缓存器中没有找到该数据信息,查找该排序区间的各排名对应的存储节点,在该服务器的数据库中,加载该存储节点的数据信息到第一缓存器中,将第一缓存器中的该数据信息发送给终端,终端基于该数据信息显示发送的排行榜查询请求对应的数据信息。本实施例可以基于存储节点可以实现精确查找数据信息,排行榜查询请求所需要的数据信息存储在缓存器中减少了对内存的占用,提高了服务器对数据信息查询的处理速度。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令(也可以简称为指令),该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本实施例还提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本申请实施例所提供的排行榜管理方法。例如,该计算机程序可以执行如下步骤:
接收终端发送的排行榜查询请求,该排行榜查询请求携带排行榜排序区间;在服务器的第一缓存器中查找该排行榜排序区间对应的数据信息,该第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;若在该第一缓存器中未查找到该数据信息,则查找排行榜排序区间的各排名对应的存储节点;在该服务器的数据库中加载该存储节点的数据信息至该第一缓存器;将该第一缓存器中的该数据信息发送给该终端,以使得该终端显示该排行榜查询请求对应的数据信息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种排行榜方法中的步骤,因此,可以实现本申请实施例所提供的任一种排行榜管理法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种排行榜方法、装置、计算机设备和系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种排行榜管理方法,其特征在于,包括:
接收终端发送的排行榜查询请求,所述排行榜查询请求携带排行榜排序区间;
在服务器的第一缓存器中查找所述排行榜排序区间对应的数据信息,所述第一缓存器存储有服务器已访问数据库得到的排行榜的历史数据信息;
若在所述第一缓存器中未查找到所述数据信息,则查找排行榜排序区间的各排名对应的存储节点;
在所述服务器的数据库中加载所述存储节点的数据信息至所述第一缓存器;
将所述第一缓存器中的所述数据信息发送给所述终端,以使得所述终端显示所述排行榜查询请求对应的所述数据信息。
2.根据权利要求1所述的方法,其特征在于,所述在服务器的第一缓存器中查找所述排行榜排序区间对应的数据信息之后,还包括:
若在所述第一缓存器中查找到所述数据信息,将所述第一缓存器中的所述数据信息发送给所述终端。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述第一缓存器中的所述数据信息发送给所述终端,包括:
复制所述第一缓存器中的所述数据信息至第二缓存器,所述第二缓存器用于存储所述第一缓存器中所述排行榜查询请求对应的数据信息;
将所述第二缓存器中的所述数据信息发送给所述终端。
4.根据权利要求3所述的方法,其特征在于,所述将所述第二缓存器中的所述数据信息发送给所述终端之后,包括:
删除所述第二缓存器中的所述数据信息。
5.根据权利要求1所述的方法,其特征在于,所述存储节点为树结构上的节点,所述树结构包括至少一层的存储节点,所述查找排行榜排序区间的各排名对应的存储节点,包括:
按照预设顺序,查找所述树结构上排行榜排序区间的各排名对应的存储节点。
6.根据权利要求5所述的方法,其特征在于,所述按照预设顺序,查找所述树结构上排行榜排序区间的各排名对应的存储节点,包括:
按照预设顺序,获取所述树结构节点的节点总数,所述节点总数包括以所述节点为根节点的左子树的第一节点总数、右子树的第二节点总数和所述节点;
将所述排名对应的数值与所述节点总数比较;
基于比较结果确定所述排名对应的存储节点。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到所述数据库的数据信息发生变化时,更新所述树结构的节点总数。
8.一种排行榜管理装置,其特征在于,包括:
接收单元,用于接收终端发送的排行榜查询请求,所述排行榜查询请求携带排行榜排序区间;
查找单元,用于查找所述排行榜查询请求所需要的数据信息;
加载单元,用于在所述服务器的数据库中加载所述存储节点的数据信息至所述第一缓存器;
发送单元,用于将所述第一缓存器中的所述数据信息发送给所述终端。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行如权利要求1至7任一项所述的排行榜管理方法。
10.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行权利要求1至7任一项所述的排行榜管理方法。
CN202011193876.4A 2020-10-30 2020-10-30 一种排行榜管理方法、装置、计算机设备和存储介质 Active CN112307059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011193876.4A CN112307059B (zh) 2020-10-30 2020-10-30 一种排行榜管理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011193876.4A CN112307059B (zh) 2020-10-30 2020-10-30 一种排行榜管理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112307059A true CN112307059A (zh) 2021-02-02
CN112307059B CN112307059B (zh) 2023-11-28

Family

ID=74333003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011193876.4A Active CN112307059B (zh) 2020-10-30 2020-10-30 一种排行榜管理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112307059B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512320A (zh) * 2015-12-18 2016-04-20 北京金山安全软件有限公司 一种用户排名获得方法、装置及服务器
CN108153825A (zh) * 2017-12-07 2018-06-12 石化盈科信息技术有限责任公司 数据访问方法及装置
CN109582902A (zh) * 2018-11-20 2019-04-05 广州虎牙信息科技有限公司 排序信息的确定方法、榜单展示方法及计算机设备
CN110833696A (zh) * 2019-11-06 2020-02-25 网易(杭州)网络有限公司 玩家排名方法与装置、存储介质、电子设备
CN111400346A (zh) * 2020-03-13 2020-07-10 苏州浪潮智能科技有限公司 一种提升数据库一体机执行效率的方法、设备、装置和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512320A (zh) * 2015-12-18 2016-04-20 北京金山安全软件有限公司 一种用户排名获得方法、装置及服务器
CN108153825A (zh) * 2017-12-07 2018-06-12 石化盈科信息技术有限责任公司 数据访问方法及装置
CN109582902A (zh) * 2018-11-20 2019-04-05 广州虎牙信息科技有限公司 排序信息的确定方法、榜单展示方法及计算机设备
CN110833696A (zh) * 2019-11-06 2020-02-25 网易(杭州)网络有限公司 玩家排名方法与装置、存储介质、电子设备
CN111400346A (zh) * 2020-03-13 2020-07-10 苏州浪潮智能科技有限公司 一种提升数据库一体机执行效率的方法、设备、装置和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张巍等: "基于启发式搜索算法的网格信息查询优化", 《计算机工程》, no. 19, pages 26 - 29 *

Also Published As

Publication number Publication date
CN112307059B (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
US9317519B2 (en) Storage system for eliminating duplicated data
US10592532B2 (en) Database sharding
CN104067216B (zh) 用于实施可扩展数据存储服务的系统和方法
CN107943718B (zh) 一种清理缓存文件的方法和装置
CN109766318B (zh) 文件读取方法及装置
CN111400334B (zh) 数据处理方法、装置、存储介质及电子装置
US11775488B2 (en) Data access and recommendation system
US10747773B2 (en) Database management system, computer, and database management method
CN114741335A (zh) 缓存管理方法、装置、介质及设备
CN114610680A (zh) 分布式文件系统元数据管理方法、装置、设备及存储介质
EP3507699B1 (en) Method and systems for master establishment using service-based statistics
US10437806B2 (en) Database management method and information processing apparatus
CN112307059B (zh) 一种排行榜管理方法、装置、计算机设备和存储介质
CN116028505A (zh) 一种在分布式数据库中实现高可用序列的方法
CN115878625A (zh) 数据处理方法和装置及电子设备
CN111339245B (zh) 数据存储方法、装置、存储介质及设备
KR102375511B1 (ko) 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법
JP7068210B2 (ja) データベース管理システム、端末装置及び方法
CN115705320A (zh) 索引生成方法、装置、计算机设备和计算机可读存储介质
CN112817966B (zh) 数据检索方法、装置、电子设备以及存储介质
CN114710449B (zh) 用于终端文件交互的流量控制方法、装置、计算机设备
CN112613390B (zh) 多gpu集群并行人脸搜索方法与系统
US8650153B2 (en) Storing records in databases in a randomized manner to effectively utilize database servers
CN117271073A (zh) 计算任务的执行方法及装置
CN114969032A (zh) 一种用户指标信息存储方法、装置、存储介质及服务器

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038371

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant