CN111708954B - 一种排行榜的排名方法及系统 - Google Patents
一种排行榜的排名方法及系统 Download PDFInfo
- Publication number
- CN111708954B CN111708954B CN202010442788.7A CN202010442788A CN111708954B CN 111708954 B CN111708954 B CN 111708954B CN 202010442788 A CN202010442788 A CN 202010442788A CN 111708954 B CN111708954 B CN 111708954B
- Authority
- CN
- China
- Prior art keywords
- ranking
- ranking list
- list
- record
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000002776 aggregation Effects 0.000 claims description 44
- 238000004220 aggregation Methods 0.000 claims description 44
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 8
- 238000002955 isolation Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002238 attenuated effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Abstract
本发明实施例提供一种排行榜的排名方法及系统,包括:获取用于排行榜的待排名数据;将待排名数据写入到对应榜单的聚合排行榜记录内,并根据预设规则对聚合排行榜记录内的排名进行更新;当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户。本发明通过打散聚合计算的计算量到每个记榜操作过程中,提高了排行榜读取的实时性和准确性。
Description
技术领域
本发明涉及计算机领域,具体涉及一种排行榜的排名方法及系统。
背景技术
21世纪,移动互联网的兴起带来了各种不同的业务场景,这些业务场景无时无刻不在产生与之对应的信息流,这些信息流又通过积累聚合产生新的信息价值:排行榜。
秀场主播关注观众打赏的排行榜,因为他希望更好的迎合观众的喜好;商家关注商品浏览、售卖的排行榜,因为他希望更好的调整营销策略;在各类游戏系统中,排行榜满足了玩家攀比炫耀的心理。可见几乎每个互联网产品都会涉及排行榜业务。
排行榜系统在互联网行业中的技术实现方案为磁盘型存储引擎,每次玩家的加分操作都保存在BTree数据结构中,玩家排名则由其数据引擎层的GROUP BY聚合函数计算得出。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
基于磁盘型存储的排行榜实现方案,榜单的读取操作(分数聚合操作)的实时性会随着记榜数据量的增大迅速衰减。
如果一个排行榜的结果关系到用户的权益问题,这个时候一个排行榜的精确性就需要非常高,比如直播平台根据主播收到的用户打赏总数决策奖励主播的曝光量,这时候主播收到的打赏总数排行榜就需要非常精确,否则就会影响到平台权益的分配。同时在互动性比较强的场景中,排行榜的实时性就有了很高的要求,当用户发现自己的排行榜名次迟迟没有更新,排行榜的信息价值也会大打折扣。
发明内容
本发明实施例提供一种排行榜的排名方法及系统,本发明通过打散聚合计算的计算量到每个记榜操作过程中,提高了排行榜读取的实时性和准确性。
为达上述目的,一方面,本发明实施例提供一种排行榜的排名方法,包括:
获取用于排行榜的待排名数据;
将待排名数据写入到对应榜单的聚合排行榜记录内,并根据预设规则对聚合排行榜记录内的排名进行更新;
当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户。
另一方面,本发明实施例提供,包括:
数据获取单元,用于获取用于排行榜的待排名数据;
数据写入单元,用于将待排名数据写入到对应榜单的聚合排行榜记录内;
读取单元,用于当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户。
上述技术方案具有如下有益效果:本发明通过打散聚合计算的计算量到每个记榜操作过程中,提高了排行榜读取的实时性和准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种排行榜的排名方法流程图;
图2是本发明实施例的一种排行榜的排名系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明实施例,提供一种排行榜的排名方法,包括:
S101:获取用于排行榜的待排名数据;
S102:将待排名数据写入到对应榜单的聚合排行榜记录内,并根据预设规则对聚合排行榜记录内的排名进行更新;
S103:当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户。
优选地,步骤102具体包括:
S1021:将待排名数据插入到关系型数据库存储系统RDBMS内的排名数据记录表内,并标记该待排名数据为已登记;
S1022:将排名数据记录表中已登记的待排名数据更新到RDBMS内对应榜单的聚合排行榜记录内,形成更新后的聚合排行榜记录,并将待排名数据标记为已刷入。
优选地,步骤1022具体包括:
S1022-1:查找待排名数据中待排行者的名称是否存在于对应榜单的聚合排行榜记录内;
S1022-2:如果待排行者的名称存在于对应榜单的聚合排行榜记录内,则根据待排行者的名称将待排名数据更新到该榜单的聚合排行榜相应的名称下,并根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录;
S1022-3:如果待排行者的名称不存在于对应榜单的聚合排行榜记录内,则将待排名数据插入到该榜单的聚合排行榜记录内,根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录。
优选地,还包括:
S104:自RDBMS中获取更新后的聚合排行榜记录,并将更新后的聚合排行榜记录存储于缓存中。
优选地,S103具体包括:
S1031:当接收到用户查看某个榜单的排行榜的请求时,读取缓存中该榜单的聚合排行榜记录;
S1032:如果在缓存中未命中该榜单的聚合排行榜记录,则自RDBMS中重新获取该榜单的聚合排行榜记录并存储于缓存中。
如图2所示,结合本发明实施例,提供一种排行榜的排名系统,包括:
数据获取单元21,用于获取用于排行榜的待排名数据;
数据写入单元22,用于将待排名数据写入到对应榜单的聚合排行榜记录内,并根据预设规则对聚合排行榜记录内的排名进行更新;
读取单元23,用于当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户。
优选地,所述数据写入单元22包括:
数据插入子单元221,用于将待排名数据插入到关系型数据库存储系统RDBMS内的排名数据记录表,并标记该待排名数据为已登记;
数据更新子单元222,用于将排名数据记录表中已登记的待排名数据更新到RDBMS内对应榜单的聚合排行榜记录内,形成更新后的聚合排行榜记录,并将待排名数据标记为已刷入。
优选地,所述数据更新子单元222,具体用于:
查找待排名数据中待排行者的名称是否存在于对应榜单的聚合排行榜记录内;
如果待排行者的名称存在于对应榜单的聚合排行榜记录内,则根据待排行者的名称将待排名数据更新到该榜单的聚合排行榜相应的名称下,并根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录;
如果待排行者的名称不存在于对应榜单的聚合排行榜记录内,则将待排名数据插入到该榜单的聚合排行榜记录内,根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录。
优选地,还包括:
缓存单元24,用于自RDBMS中获取更新后的聚合排行榜记录,并将更新后的聚合排行榜记录存储于缓存中。
优选地,所述读取单元23,包括:
缓存子单元231,用于当接收到用户查看某个榜单的排行榜的请求时,读取缓存中该榜单的聚合排行榜记录;
补偿子单元231,用于如果在缓存中未命中该榜单的聚合排行榜记录,则自RDBMS中重新获取该榜单的聚合排行榜记录并存储于缓存中。
本发明所取得的有益效果如下:
与目前互联网中的排行榜系统相比,本发明通过打散聚合计算的计算量到每个记榜操作过程中,和缓存层的加入,提高了排行榜读取的实时性。同时通过关系型数据库的事务和有限状态机保障了排行榜数据的准确性,并有较好的场景适应性。
下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
本发明为一种可靠实时排行榜系统,本发明基于两种存储引擎的各自的优势,在保障排行榜精确性的同时解决了排行榜的实时性受记榜数据量影响而衰减的问题。
一种可靠实时排行榜系统,包括写入步骤和读取步骤。其中,写入步骤标识将外部输入的数据,写入到榜单记录中,并更新至(或创建新的)聚合记录中。即,将榜单记录聚合为排行信息的计算量分散到每次的记录操作中,所有的榜单记录操作是离散到整个榜单生命周期中的。也就是将榜单生命周期中的操作进行了打散,打散指的是写入步骤1至3在整个榜单的生命周期中是分散的,而不是在用户需要最新排行榜时在查询是否有待更新的数据;那么通过小而分散的计算量来代替大而集中的计算量的方式就能缩短榜单计算输出的时间。
写入步骤1:将产生的Record数据(是指更新的或者新的需要排行的Record数据)插入至具有事务功能的关系型数据库存储系统RDBMS(比如存储引擎MySQL)的表里,该表用于存储Record数据,在该表里形成新的一行Record数据,此时该新插入的Record数据的状态为已登记(Registered),对于玩家排行榜的每一行Record数据包括:序号record id、record status、leaderboard、player、increase。具体为:如果系统接到一个记榜的请求,当接系统到记榜的请求之后,在RDBMS的record里增加一个关于给该请求所对应数据的记录,那么状态是已登记registered,有了这个标记,通过从数据库的数据中能查出该标记,根据该标记来追踪该记录是否已经在排行榜上生效。将新插入的Record数据的状态为已登记,通过有限状态机标注了产生的record数据发生了状态流转。
此步骤的操作在于通过RDBMS保证原子性,一致性、实时性。其中,原子性(Atomicity),即事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行;一致性(Consistency)即事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。通过关系型数据库的事务和有限状态机保障了排行榜数据的准确性。
写入步骤2.1:开启可重复读级别的引擎事务,将产生的Record数据的状态更新为已刷入(Flushed),同时执行写入步骤2.2。将已登记的Record数据的状态更新为已刷入,通过有限状态机标注了产生的record数据再次发生了状态流转。
其中,RDBMS事务是指从事务开启至事务提交(或回滚)的一系列操作,即2.1(开启),2.2,2.3(提交),这三个步骤具有原子性、一致性、隔离性、持久性的特性。可重复读Repeatable Read)是指RDBMS事物的一种隔离级别,隔离性(Isolation)即多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
写入步骤2.2:在RDBMS中还包括一个表,用于存储Aggregation数据。将已登记的Record数据并更为已刷入的同时,查找该Record数据是否存在已聚合的排行榜记录(Aggregation)。如不存在,则在相应的已聚合的排行榜记录中插入该Record记录中对应项目,比如:榜单名称、玩家、分数的记录;如存在,则在相应的已聚合的排行榜记录中按照榜单、玩家,并更新累计增加分数。
聚合是指本发明中提出的专有概念,聚合的作用是在外部输入记榜数据时(相对于外部请求查询排行榜时)的一步提前运算和运算结果的持久化。这样做的目的是减少在外部请求查询排行榜时的计算量,从而缩短系统响应时间。
写入步骤2.3:提交当前事务,就是要更新,生成新的聚合排行榜记录。当前事务存在于具有事务功能的RDBMS中。RDBMS具有持久性(Durability),持久性即已被提交的事务对数据库的修改应该永久保存在数据库中。
写入步骤3:如果当前事务提交成功,结束。如果当前事务提交失败,重复写入步骤1和2。此步骤操作能够保证数据的一致性。
写入步骤1-3保障了事务的一致性和持久性。
读取步骤:
自具有事务功能的RDBMS中获取最新的排行榜记录,存储于缓存中;对同一个排行榜记录,最新读取到排行榜数据会覆盖以前内存中的排行榜记录。也就是写入步骤完成后,排行榜数据并不存在于缓存中,缓存中的数据写入是由读取行为驱动的。缓存的加入会加快榜单的读取,因为不同存储介质有不同的读写速度的特性;因为榜单聚合数据是存在RDBMS的,存储介质(磁盘)决定读写速度是达不到缓存(内存)的读写速度的;每次用户请求查看排行榜时,先从缓存中读取聚合排行榜记录,读取速度快,大大降低排行榜的读取时间,实时性高。
读取步骤1:当用户需要查看最新的排行榜数据时,按缓存Key leaderboard(榜单的唯一标识)读取缓存中的排行榜数据。
读取步骤2:如命中缓存(Redis)中的最新的排行榜数据,则输出最新的排行榜数据,结束。命中缓存代表找对缓存中的排行榜数据,排行榜数据即(Aggregation的集合),聚合数据包括:榜单名称leaderboard、名称(比如player)、积分(score),由于聚合数据在查询时是有序的(见读取步骤3),因此榜单数据包含玩家信息、分数、排名的所有数据。
读取步骤3:如未命中缓存,也就是未从缓存系统中排行榜记录,则按照榜单在有具有事务功能的RDBMS内查询排行榜记录,即Aggregation集合数据,包括select(查询搜索)leaderboard,player,score from aggregation where leaderboard=?order byscore desc,查询后写入到缓存内,以更新缓存内的已聚合的排行榜记录,输出最新的排行榜数据,结束。
本发明所取得的有益效果如下:
与目前互联网中的排行榜系统相比,本发明通过打散聚合计算的计算量到每个记榜操作过程中,和缓存层的加入,提高了排行榜读取的实时性。同时通过关系型数据库的事务和有限状态机保障了排行榜数据的准确性,并有较好的场景适应性。
同时也克服了“目前基于内存型存储的排行榜实现方案,由于受引擎特性制约无法保障数据的一致性和持久性,也就无法保障排行榜结果的准确性”的缺点。基于磁盘型存储的排行榜实现方案,榜单的读取操作(分数聚合操作)的实时性会随着记榜数据量的增大迅速衰减。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种排行榜的排名方法,其特征在于,包括:
在接收到一个记榜的请求时,获取请求中对应的用于排行榜的待排名数据;
将待排名数据写入到对应榜单的聚合排行榜记录内,并根据预设规则对聚合排行榜记录内的排名进行更新;其中,所述聚合排行榜记录是指已聚合的排行榜记录;所述将待排名数据写入到对应榜单的聚合排行榜记录内,具体包括:将待排名数据插入到关系型数据库存储系统RDBMS内的排名数据记录表内,并标记该待排名数据为已登记;将排名数据记录表中已登记的待排名数据更新到RDBMS内对应榜单的聚合排行榜记录内,形成更新后的聚合排行榜记录,并将待排名数据标记为已刷入;
当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户;
所述将排名数据记录表中已登记的待排名数据更新到RDBMS内对应榜单的聚合排行榜记录内,具体包括:
查找待排名数据中待排行者的名称是否存在于对应榜单的聚合排行榜记录内;
如果待排行者的名称存在于对应榜单的聚合排行榜记录内,则根据待排行者的名称将待排名数据更新到该榜单的聚合排行榜相应的名称下,并根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录;
如果待排行者的名称不存在于对应榜单的聚合排行榜记录内,则将待排名数据插入到该榜单的聚合排行榜记录内,根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录。
2.根据权利要求1所述的排行榜的排名方法,其特征在于,还包括:
自RDBMS中获取更新后的聚合排行榜记录,并将更新后的聚合排行榜记录存储于缓存中。
3.根据权利要求2所述的排行榜的排名方法,其特征在于,当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,具体包括:
当接收到用户查看某个榜单的排行榜的请求时,读取缓存中该榜单的聚合排行榜记录;
如果在缓存中未命中该榜单的聚合排行榜记录,则自RDBMS中重新获取该榜单的聚合排行榜记录并存储于缓存中。
4.一种排行榜的排名系统,其特征在于,包括:
数据获取单元,用于在接收到一个记榜的请求时,获取请求中对应的用于排行榜的待排名数据;
数据写入单元,用于将待排名数据写入到对应榜单的聚合排行榜记录内;其中,所述聚合排行榜记录是指已聚合的排行榜记录;
读取单元,用于当接收到用户查看某个榜单的排行榜的请求时,读取该榜单的聚合排行榜记录,根据读取到的聚合排行榜记录形成相应榜单的排行榜并将排行榜展示给用户;
所述数据写入单元包括:
数据插入子单元,用于将待排名数据插入到关系型数据库存储系统RDBMS内的排名数据记录表,并标记该待排名数据为已登记;
数据更新子单元,用于将排名数据记录表中已登记的待排名数据更新到RDBMS内对应榜单的聚合排行榜记录内,形成更新后的聚合排行榜记录,并将待排名数据标记为已刷入;
所述数据更新子单元,具体用于:
查找待排名数据中待排行者的名称是否存在于对应榜单的聚合排行榜记录内;
如果待排行者的名称存在于对应榜单的聚合排行榜记录内,则根据待排行者的名称将待排名数据更新到该榜单的聚合排行榜相应的名称下,并根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录;
如果待排行者的名称不存在于对应榜单的聚合排行榜记录内,则将待排名数据插入到该榜单的聚合排行榜记录内,根据预设规则对聚合排行榜记录内的排名进行更新,形成更新后的聚合排行榜记录。
5.根据权利要求4所述的排行榜的排名系统,其特征在于,还包括:
缓存单元,用于自RDBMS中获取更新后的聚合排行榜记录,并将更新后的聚合排行榜记录存储于缓存中。
6.根据权利要求5所述的排行榜的排名系统,其特征在于,所述读取单元,包括:
缓存子单元,用于当接收到用户查看某个榜单的排行榜的请求时,读取缓存中该榜单的聚合排行榜记录;
补偿子单元,用于如果在缓存中未命中该榜单的聚合排行榜记录,则自RDBMS中重新获取该榜单的聚合排行榜记录并存储于缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442788.7A CN111708954B (zh) | 2020-05-22 | 2020-05-22 | 一种排行榜的排名方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442788.7A CN111708954B (zh) | 2020-05-22 | 2020-05-22 | 一种排行榜的排名方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708954A CN111708954A (zh) | 2020-09-25 |
CN111708954B true CN111708954B (zh) | 2023-10-27 |
Family
ID=72538325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010442788.7A Active CN111708954B (zh) | 2020-05-22 | 2020-05-22 | 一种排行榜的排名方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708954B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370068B1 (en) * | 2002-09-04 | 2008-05-06 | Teradata Us, Inc. | Sorting of records with duplicate removal in a database system |
CN102393858A (zh) * | 2011-11-17 | 2012-03-28 | 陈洪 | 一种基于客户端实时聚合的元搜索引擎系统 |
CN103177063A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于时间数据聚合的时间滑动操作器 |
CN104021161A (zh) * | 2014-05-27 | 2014-09-03 | 华为技术有限公司 | 一种聚簇存储方法及装置 |
CN105808736A (zh) * | 2016-03-10 | 2016-07-27 | 微梦创科网络科技(中国)有限公司 | 一种榜单数据更新方法、装置及系统 |
CN106095923A (zh) * | 2016-06-12 | 2016-11-09 | 微梦创科网络科技(中国)有限公司 | 一种在有序榜单中添加上榜数据的方法及系统 |
CN107077453A (zh) * | 2015-03-24 | 2017-08-18 | 华为技术有限公司 | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 |
CN108495195A (zh) * | 2018-03-13 | 2018-09-04 | 武汉斗鱼网络科技有限公司 | 一种网络直播排行榜生成方法、装置、设备及存储介质 |
CN109582902A (zh) * | 2018-11-20 | 2019-04-05 | 广州虎牙信息科技有限公司 | 排序信息的确定方法、榜单展示方法及计算机设备 |
CN109675319A (zh) * | 2018-12-24 | 2019-04-26 | 网易(杭州)网络有限公司 | 一种用户数据信息处理的方法和装置 |
CN109739903A (zh) * | 2018-12-30 | 2019-05-10 | 广州华多网络科技有限公司 | 一种排行榜数据的生成方法及相关装置 |
CN109766497A (zh) * | 2019-01-22 | 2019-05-17 | 网易(杭州)网络有限公司 | 排行榜生成方法及装置、存储介质、电子设备 |
CN109961312A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 广告数据的统计方法、装置和计算机可读存储介质 |
CN110321230A (zh) * | 2018-03-28 | 2019-10-11 | 武汉斗鱼网络科技有限公司 | 一种用于处理排行榜信息的系统、方法及计算机设备 |
CN110334104A (zh) * | 2019-06-28 | 2019-10-15 | 香港乐蜜有限公司 | 一种榜单更新方法、装置、电子设备及存储介质 |
CN110362763A (zh) * | 2019-07-16 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 数据排序方法、数据排序装置、介质及电子设备 |
CN110975296A (zh) * | 2019-11-25 | 2020-04-10 | 网易(杭州)网络有限公司 | 游戏中排行榜的维护方法、装置、设备及存储介质 |
EP3637277A1 (en) * | 2018-10-12 | 2020-04-15 | Xerox Corporation | Sorting of devices for file distribution |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9908054B2 (en) * | 2011-06-16 | 2018-03-06 | K-Innovation | Method, system and computer readable recording medium for providing a game ranking in a game service platform |
-
2020
- 2020-05-22 CN CN202010442788.7A patent/CN111708954B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370068B1 (en) * | 2002-09-04 | 2008-05-06 | Teradata Us, Inc. | Sorting of records with duplicate removal in a database system |
CN102393858A (zh) * | 2011-11-17 | 2012-03-28 | 陈洪 | 一种基于客户端实时聚合的元搜索引擎系统 |
CN103177063A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于时间数据聚合的时间滑动操作器 |
CN104021161A (zh) * | 2014-05-27 | 2014-09-03 | 华为技术有限公司 | 一种聚簇存储方法及装置 |
CN107077453A (zh) * | 2015-03-24 | 2017-08-18 | 华为技术有限公司 | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 |
CN105808736A (zh) * | 2016-03-10 | 2016-07-27 | 微梦创科网络科技(中国)有限公司 | 一种榜单数据更新方法、装置及系统 |
CN106095923A (zh) * | 2016-06-12 | 2016-11-09 | 微梦创科网络科技(中国)有限公司 | 一种在有序榜单中添加上榜数据的方法及系统 |
CN109961312A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 广告数据的统计方法、装置和计算机可读存储介质 |
CN108495195A (zh) * | 2018-03-13 | 2018-09-04 | 武汉斗鱼网络科技有限公司 | 一种网络直播排行榜生成方法、装置、设备及存储介质 |
CN110321230A (zh) * | 2018-03-28 | 2019-10-11 | 武汉斗鱼网络科技有限公司 | 一种用于处理排行榜信息的系统、方法及计算机设备 |
EP3637277A1 (en) * | 2018-10-12 | 2020-04-15 | Xerox Corporation | Sorting of devices for file distribution |
CN109582902A (zh) * | 2018-11-20 | 2019-04-05 | 广州虎牙信息科技有限公司 | 排序信息的确定方法、榜单展示方法及计算机设备 |
CN109675319A (zh) * | 2018-12-24 | 2019-04-26 | 网易(杭州)网络有限公司 | 一种用户数据信息处理的方法和装置 |
CN109739903A (zh) * | 2018-12-30 | 2019-05-10 | 广州华多网络科技有限公司 | 一种排行榜数据的生成方法及相关装置 |
CN109766497A (zh) * | 2019-01-22 | 2019-05-17 | 网易(杭州)网络有限公司 | 排行榜生成方法及装置、存储介质、电子设备 |
CN110334104A (zh) * | 2019-06-28 | 2019-10-15 | 香港乐蜜有限公司 | 一种榜单更新方法、装置、电子设备及存储介质 |
CN110362763A (zh) * | 2019-07-16 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 数据排序方法、数据排序装置、介质及电子设备 |
CN110975296A (zh) * | 2019-11-25 | 2020-04-10 | 网易(杭州)网络有限公司 | 游戏中排行榜的维护方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
D~3MOPSO:一种基于用户偏好的元搜索排序聚合演化方法;汤小月;余伟;李石君;;计算机研究与发展(第08期);全文 * |
编程实现数据库的查询优化;张元英;宜春学院学报(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111708954A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110975B1 (en) | Search result inputs using variant generalized queries | |
US9336254B2 (en) | Database performance estimation device and database estimation method | |
KR100921158B1 (ko) | 데이터베이스 관리 방법 및 시스템 | |
US8090700B2 (en) | Method for updating databases | |
EP3456360A1 (en) | Device and method for tuning relational database | |
CN109086133B (zh) | 在内存中维护数据的方法和系统 | |
CN106933494B (zh) | 混合存储设备的操作方法和装置 | |
US9239858B1 (en) | High-concurrency transactional commits | |
KR20190022761A (ko) | 검색 캐시 업데이트 방법 및 장치 | |
CN110191168A (zh) | 在线业务数据的处理方法、装置、计算机设备和存储介质 | |
US20110258034A1 (en) | Hierarchically-structured indexing and retrieval | |
CN111708954B (zh) | 一种排行榜的排名方法及系统 | |
CN109299143A (zh) | 基于Redis缓存的数据互操作测试知识库的知识快速索引方法 | |
US20020194189A1 (en) | Method and system for activating column triggers in a database management system | |
US20090157621A1 (en) | Search device, search method and search program | |
CN106897224B (zh) | 一种软件测试范围的确定方法及装置 | |
CN102368236A (zh) | 一种翻译系统及翻译方法 | |
EP1967968B1 (en) | Sharing of database objects | |
CN110874360A (zh) | 一种基于固定容量的有序队列缓存方法及装置 | |
CN103116652A (zh) | 一种基于拉链信息的索引存储管理方法 | |
CN115878677A (zh) | 分布式多级缓存的数据处理方法和装置 | |
CN112527804B (zh) | 文件存储方法、文件读取方法和数据存储系统 | |
WO2016053302A1 (en) | Processing query of database and data stream | |
CN113129061B (zh) | 一种广告索引校验方法及系统 | |
CN113704260A (zh) | 一种基于改进lsm树结构的数据存储方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |