CN109582902B - 排序信息的确定方法、榜单展示方法及计算机设备 - Google Patents

排序信息的确定方法、榜单展示方法及计算机设备 Download PDF

Info

Publication number
CN109582902B
CN109582902B CN201811385642.2A CN201811385642A CN109582902B CN 109582902 B CN109582902 B CN 109582902B CN 201811385642 A CN201811385642 A CN 201811385642A CN 109582902 B CN109582902 B CN 109582902B
Authority
CN
China
Prior art keywords
user
weight
users
information
interval
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
Application number
CN201811385642.2A
Other languages
English (en)
Other versions
CN109582902A (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.)
Guangzhou Huya Information Technology Co Ltd
Original Assignee
Guangzhou Huya Information Technology 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 Guangzhou Huya Information Technology Co Ltd filed Critical Guangzhou Huya Information Technology Co Ltd
Priority to CN201811385642.2A priority Critical patent/CN109582902B/zh
Publication of CN109582902A publication Critical patent/CN109582902A/zh
Application granted granted Critical
Publication of CN109582902B publication Critical patent/CN109582902B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及互联网领域,尤其涉及一种排序信息的确定方法、榜单展示方法及计算机设备。一种排序信息的确定方法,包括:获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量;根据用户权值及对应的用户数量构建权值累计函数,并对权值累计函数进行拟合得到拟合系数;分别获取每个用户的用户权值及小于该用户权值的第一用户数量;根据所述拟合系数和所述第一用户数量确定各个用户的排序信息。本申请提供的方案能够提高获得用户排名数据的效率。

Description

排序信息的确定方法、榜单展示方法及计算机设备
技术领域
本发明涉及互联网技术领域,具体而言,本发明涉及一种排序信息的确定方法、榜单展示方法及计算机设备。
背景技术
随着互联网应用技术的发展,在线应用已经由简单的功能实现而发展为可多人针对某一虚拟资源或虚拟场景发起各种操作的多人在线应用,例如,大型多人在线游戏应用或直播应用,随着多人针对某一虚拟资源或虚拟场景发起的各种操作,面向多个的业务数据相应发生变化,通过各种类型的榜单服务反映多人操作的执行结果,也能激励用户投入更多的资源参与其中,例如,大型多人在线游戏应用中,通过榜单服务的实现而为玩家进行游戏排行榜的展示,通过显示排名靠前的用户权值及排名,激励用户按照各应用设置的加分操作以提升自己的排名。
现有的排名信息的确定方法,一般采用字典加跳跃表或字典加平衡树的方式来进行榜单的实现,这些方式实现起来比较复杂容易出错,在冷启动时需要从存储介质中把所有用户数据加载到内存里进行排序,对内存的大小要求高,且耗费时间比较长。
发明内容
本发明提供了一种排序信息的确定方法、榜单展示方法及计算机设备,以降低获得用户排名的计算复杂度。
本发明实施例首先提供了一种排序信息的确定方法,包括:
获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量;
根据用户权值及对应的用户数量构建权值累计函数,并对权值累计函数进行拟合得到拟合系数;
分别获取每个用户的用户权值及小于该用户权值的第一用户数量;
根据所述拟合系数和所述第一用户数量确定各个用户的排序信息。
优选地,所述需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤之前,还包括:
获得当前访问记录中用户的识别信息;
在缓存中查询所述识别信息对应的用户权值是否存储于缓存中;
若是,从缓存中调取所述识别信息对应的用户权值,若否,从数据库中加载该用户权值并加入缓存中,调取所述识别信息对应的用户权值。
优选地,当用户数量超过预设阈值时,所述根据用户权值及对应的用户数量构建权值累计函数的步骤,包括:
根据用户权值的分布状态将所述用户权值划分为多个权重区间;
在每个权重区间内分别对用户权值及对应的用户数量进行拟合获得权值累计函数。
优选地,所述根据用户权值的分布状态将所述用户权值划分为多个权重区间的步骤,包括:
依据用户权值最大值与预设区间数量的比值获得用户权值的区间步长。
优选地,所述根据用户权值的分布状态将所述用户权值划分为多个权值区间的步骤,包括:
检测到第一权重区间的区间步长超出预设区间步长,根据所述预设步长将所述第一权重区间分割为两个子区间。
具体地,所述检测到第一权值区间的区间步长超出预设步长,根据所述预设步长将所述第一权值区间分割为两个子区间的步骤,包括:
第一权值区间的上一权值区间为(i*L,(i+1)*L],所述第一权值区间的区间步长超出预设步长L,则分裂出子区间((i+1)*L,(i+2)*L],其中,i是表征权值区间数量的整数。
优选地,所述获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤,包括:
从存储有当前访问信息的哈希表中调取需要排序用户的识别信息对应的用户权值,以及所述用户权值对应的用户数量。
优选地,所述根据用户权值及对应的用户数量构建权值累计函数的步骤之前,还包括:
调取排序靠前的若干用户的识别信息及对应的用户权值;
基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息。
优选地,所述基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息的步骤,包括:
将按照权值大小排序的用户权值及对应的识别信息存储于有序集中;
将用户的识别信息及其在有序集中的存储位置存储于字典中;
查询所述字典确定当前访问的识别信息对应的用户权值,查询所述有序集获得所述用户权值对应的排序信息。
进一步地,本发明实施例提供了一种榜单展示方法,包括:
根据上述任一技术方案所述的排序信息的确定方法获得用户权值对应的排序信息,得到包含各用户及对应排序信息的榜单;
将所述榜单上排名靠前的若干用户的排序信息展示在可视区域,并将其他用户的排序信息展示在隐藏区。
更进一步地,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任意一技术方案所述的排名信息的确定方法或上一技术方案所述的榜单展示方法的步骤。
与现有技术相比,本申请提供的方案至少具备如下优点:
本发明实施例提供的排名信息的确定方法,通过用户权值及对应的用户数量构建权值累计函数,根据该权值累计函数的拟合系数获得用户权值对应的排序信息,降低了获得排序信息的计算复杂度,无需将所有需要排序的用户的相关信息存储于内存中,有利于降低内存消耗量,提高内存中数据的命中率,进而提高获得用户排名数据的效率。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例提供的排名信息的确定方法的流程示意图;
图2为本发明另一个实施例提供的排序信息的确定方法的流程示意图;
图3为本发明一个实施例提供的基于存储有识别信息及对应用户权值的有序集获得若干用户的排序信息的步骤的流程示意图;
图4为本发明一个实施例提供的需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤之前的步骤的流程示意图;
图5为本发明一种实施例提供的获得用户排序信息的流程示意图;
图6-1为本发明一种实施例提供的用户权值和用户数量之间服从均匀分布的示意图;
图6-2为本发明一种实施例提供的用户权值和该用户权值超越的用户数量之间的映射关系示意图;
图7为本发明一种实施例提供的根据用户权值及对应的用户数量构建权值累计函数的步骤的流程示意图;
图8为本发明一种实施例提供的榜单的结构示意图;
图9为本发明一种实施例提供的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一直播视频图像称为第二直播视频图像,且类似地,可将第二直播视频图像称为第一直播视频图像。第一直播视频图像和第二直播视频图像两者都是直播视频图像,但其不是同一个直播视频图像。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的服务器端既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal DigitalAssistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的客户端可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。
本发明首先提供了一种排名信息的确定方法,该方法适于在服务器端执行,一种实施例中,该方法包括步骤S110、S120、S130、S140,其流程示意图如图1所示。
S110,获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量;
S120,根据用户权值及对应的用户数量构建权值累计函数,并对权值累计函数进行拟合得到拟合系数;
S130,分别获取每个用户的用户权值及小于该用户权值的第一用户数量;
S140,根据所述拟合系数和所述第一用户数量确定各个用户的排序信息。
所述用户权值可以为用户分数或积分,如在直播或游戏领域中用户完成平台设置的奖励操作获得的积分,获得所述用户权值及用户权值对应的用户数量,由于所述同一用户权值对应的用户数量可以有多个,因此需要获得每一用户权值对应的用户数量。
本申请实施例通过对用户权值及对应的用户数量进行权值累计函数的构建,获得各用户权值对应的超过用户数量,进而获得用户的排序信息,能够实时获得各用户权值的排名信息,与现有技术提供的方式相比,降低了获得排序信息的计算复杂度,无需将所有需要排序的用户的相关信息存储于内存中,有利于降低内存消耗量,提高内存中数据的命中率,进而提高获得用户排名数据的效率。
一种实施例中,本申请提供的排序信息的确定方法,在步骤S120之前,还包括步骤S210、步骤S220,其流程示意图如图2所示。
S210,调取排序靠前的若干用户的识别信息及对应的用户权值。
所述用户的识别信息优选为用户ID,用户访问信息中包括多个用户,且访问信息存储于字典或带LRU淘汰机制的哈希表中,调取排序靠前的若干用户的识别信息及对应的用户权值,所述若干用户的数量选择优选100之内的整数,针对优选的若干用户调取其识别信息及用户权值。
若根据用户的识别信息无法从缓存中获得其对应的用户权值,则从数据库中加载所述识别信息对应的用户权值至缓存中,再从所述缓存中调取用户的识别信息对应的用户权值。
S220,基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息。
针对优选的若干用户,本实施例基于存储有用户的识别信息及对应的用户权值的有序集获得各识别信息对应的排序信息。
本发明实施例提供的排名信息的确定方法,将需要排序的用户划分成两部分,排序靠前的若干用户采用有序集的方式获得用户的排名信息,访问信息中另一部分的用户采用拟合函数的方式获得对应用户的排名信息,利用有序集的方式能够获得用户的精准排名信息,而拟合函数的方式能够快速估算出用户权重对应的排序信息,降低内存占用量。
一种实施例中,所述基于存储有识别信息及对应用户权值的有序集获得若干用户的排序信息的步骤,包括如下子步骤,其流程示意图如图3所示:
S310,将按照权值大小排序的用户权值及对应的识别信息存储于有序集中。
S320,将用户的识别信息及其在有序集中的存储位置存储于字典中;
S330,查询所述字典确定当前访问的识别信息对应的用户权值,查询所述有序集获得所述用户权值对应的排序信息。
有序集通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。如果一个有序集中包含的元素数量较多,又或者有序集中元素的成员是比较长的字符串时,Redis(一个键-值存储系统)就会使用跳跃表作为有序集合键的底层实现。有序集存储有用户权值和对应的识别信息,所有用户权值按照由低到高在跳跃表中排序。通过Redis中的ZADD命令将一个或多个成员元素及其权值加入到有序集中,若某个成员已经是有序集的成员,更新这个成员的分数值,并通过重新插入这个成员元素,保证该成员在正确的位置上,若键不在有序集中,则创建一个空的有序集并执行ZADD操作。通过上述方式依次将用户的识别信息及对应的用户权值以键-值的方式存储于有序集中,通过将用户的识别信息及其在所述有序集中的存储位置存储于字典中,所述字典是用户保存键值对的抽象数据结构,程序可以在字典中根据键查找到与之关联的值,本实施例中所述键为用户的识别信息,值是该识别信息在有序集中的存储位置,这种存储方式便于通过字典及有序集快速准确地获得用户的识别信息对应的排序信息。
本实施例采用基于字典的方式获得用户权值对应的排序信息,通过字典加跳跃表,或者字典加平衡树的方式,其本质是通过指针的方式,获得用户的识别信息对应的用户权值,以及该用户权值的排序信息,通过这种方式能够准确获得用户的排序信息。
本申请实施例对需要排序的用户进行划分,排序靠前的若干用户采用有序集的方式获得用户的排名信息,访问信息中另一部分的用户采用步骤S110至步骤S140提供的方式获得对应用户的排名信息,利用有序集的方式能够获得用户的精准排名信息,而步骤S110至步骤S140提供的方式能够快速估算出用户权重对应的排序信息,降低内存占用量。
一种实施例中,排序信息的确定方法的实现过程如下:
S110获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量。
一种实施例中,从访问记录中获得用户的相关信息,所述用户的相关信息包括:用户的识别信息、用户权值及各用户权值对应的用户数量。由于访问记录中的用户并非全部需要获得对应的排序信息或者不需要采用本实施例提供的方案获得对应的排序信息,因此本实施例获得需要排序的各用户的相关信息。
一种实施例中,若按照上述实施例所述的基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息,则所述需要排序的各用户为访问信息中除去上述实施例所述的若干用户之外的用户。
一种实施例中,所述获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤,包括:
从存储有当前访问信息的哈希表中调取需要排序用户的识别信息及对应的用户权值,以及所述用户权值对应的用户数量。
用户的访问信息存储于哈希表中,所述哈希表优选带有LRU淘汰机制的哈希表,LRU(一种淘汰算法)是为虚拟页式存储管理服务的,内存的虚拟存储管理是在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到的信息,大大扩充了内存的功能,提高了计算机的并发度。带有LRU淘汰机制的哈希表能够将过期信息集合从内存中淘汰出去,以控制内存大小,降低当前内存的消耗量,提高在内存中获得查询信息的命中率。
一种实施例中,当前访问信息存储于字典中,字典是一种用于保存键值对的抽象数据结构,在字典中,一个键可以和一个值进行关联,这些关联的键和值就称为键值对。本申请实施例提供的字典中保存的是用户的识别信息与其在有序集中存储位置之间的映射关系。从访问记录中获得上述需要排序的各个用户的识别信息,根据用户的识别信息从所述字典中获得识别信息对应的有序集,有序集中包含用户的识别信息与用户权值之间的映射关系,在有序集中获得同一用户权值对应的用户的识别信息,统计用户的识别信息的数量即为该用户权值对应的用户数量。
一种实施例中,所述需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤之前,还包括子步骤S410、S420、S430,其流程示意图如图4所示:
S410,获得当前访问记录中用户的识别信息。
调取当前访问记录中用户的相关信息,所述用户的相关信息包括:用户的识别信息、用户权值及各用户权值对应的用户数量。
S420,在缓存中查询所述识别信息对应的用户权值是否存储于缓存中。
由于存储用户的访问信息的哈希表带有LRU淘汰机制,因此会将一些除当前信息之外的信息置于外存中,因此需要查询当前需要排序的用户的相关信息是否存储于缓存中,根据用户的识别信息判断所述用户的相关信息是否存储于缓存中,以用户的识别信息在缓存中进行搜索。
S430,若是,从缓存中调取所述识别信息对应的用户权值,若否,从数据库中加载该用户权值并加入缓存中,调取所述识别信息对应的用户权值。
若在缓存中检索到该用户的识别信息对应的用户权值,则调取所述用户权值,若数据库中并未存储该用户的识别信息对应的用户权值,则从外存中加载所述用户权值,从加载有对应用户权值的缓存中调取该用户权值。
一种实施例中,获得用户排序信息的流程示意图如图5所示,接收某用户的访问数据,查询是否进行全局初始化操作,若接收到确认操作,判断该用户的相关信息是否存储于带有淘汰机制的缓存中,若该用户的相关信息存储于缓存中,则从缓存中调取对应的用户权值,若该用户的相关信息并未存储于带有淘汰机制的缓存中,则从数据库中加载该用户的识别信息对应的用户权值,并将其加入带有淘汰机制的缓存中,再从缓存中调取该用户的用户权值,得到用户的用户权值之后,判断所述用户权值是否属于排名靠前的所述若干用户之列,此处的若干用户取M名,若所述用户属于前M名之内,则调取该M名的排序信息,获得该用户的排序信息,若所述用户并不属于前M名之内,则按照步骤S110至步骤S140提供的方式根据用户权值获得对应的排序信息,将该用户对应的用户权值及获得的排序信息作为用户访问信息的响应值返回给用户。
S120,根据用户权值及对应的用户数量构建权值累计函数,并对权值累计函数进行拟合得到拟合系数。
本实施例根据获得的用户权值及对应的用户数量构建权值累计函数,利用拟合算法获得权值累计函数的拟合系数。假定用户权值和用户数量服从均匀分布(如图6-1),用户权值对应的第一用户数量是指该用户权值超过的用户数量,则用户权值和该用户权值对应的第一用户数量存在线性的映射关系(如图6-2),由于用户权值和用户数量服从均匀分布,本实施例选择采用线性拟合算法来构建权值累计函数,设需要进行排序的用户总数为N,用户权值的最小值为S1、最大值为S2,用户权值S1超越的第一用户数量为K1,用户权值S2超越的第一用户数量为K2。该函数为权值累计函数Ki=A*(Si-S1)+K1,其中,A为所述权值累计函数的拟合系数,具体地,A=(K2-K1)/(S2-S1)。S130,分别获取每个用户的用户权值及小于该用户权值的第一用户数量。
结合上一示例,若当前用户权值为S,调用上述构建权值累计函数,用户权值S对应的第一用户数量K为:
K=A*(S-S1)+K1=(K2-K1)/(S2-S1)(S-S1)+K1。
获得需要排序的各用户的用户权值,按照上述方式获得各用户权值超越的第一用户数量。
S140,根据所述拟合系数和所述第一用户数量确定各个用户的排序信息。
步骤S120至步骤S130获得权值累计函数的拟合系数A及用户权值S超过的第一用户数量K,若利用有序集的方式已获得的若干用户排名,所述若干用户的用户数量为M,则K1=0,K2=N-M-1,因此用户权值为S的用户对应的排序信息R为:
R=N-K=N-(N-M-1)/(S2-S1)*(S-S1),
进一步地,若用户权值与用户数量并不服从均匀分布,则采用划分区间的形式将整个权值区间划分为多个趋于均匀分布的子区间,在每个子区间中,用户权值与用户数量符合均匀分布的情况,能够采用步骤S110至步骤S140提供的方案获得用户权值对应的排序信息。一种实施例中,当用户数量超过预设阈值时,所述根据用户权值及对应的用户数量构建权值累计函数的步骤,包括如下子步骤,其流程示意图如图7所示:
S710,根据用户权值的分布状态将所述用户权值划分为多个权重区间。
用户权值的子区间可以采用同样的区间步长,但由于用户权值的分布状态差异巨大,本实施例优选根据用户的分布状态进行权重区间的划分,若用户的分布状态符合正态分布,则处于首位位置的用户权重区间的步长较长,处于中间位置的用户权重区间的步长较小。
一种实施例中,根据用户权值的分布状态将所述用户权值划分为多个权重区间的步骤,包括:依据用户权值最大值与预设区间数量的比值获得用户权值的区间步长。
具体地,在区间步长相同时,获得用户权值的最大值及最小值,根据用户权值的区间及根据实际情况确定的区间数量获得该等步长的区间步长。若用户权值的最小值为零,则根据用户权值的最大值与预设的区间数量获得区间步长。
一种实施例中,所述根据用户权值的分布状态将所述用户权值划分为多个权值区间的步骤,包括:
检测到第一权重区间的区间步长超出预设区间步长,根据所述预设步长将所述第一权重区间分割为两个子区间。
具体地,若第一权值区间的区间步长超过预设步长L,该区间的起始点数据分别是S1、S2,即(S2-S1)>L,则将所述第一权值区间分割成两个子区间,优选地,从所述第一权值区间中分裂出权值区间为L的新区间,即分裂出子区间(S1,S1+L),所述第一权值区间的上一区间的排序方式不做限制,可以通过线性拟合或字典加跳跃表、字典加平衡树的方式获得。普遍地,假设所述为第一权值区间的上一权值区间为(i*L,(i+1)*L],所述第一权值区间的区间步长超出预设步长L,则分裂出子区间((i+1)*L,(i+2)*L],其中,i是表征权值区间数量的整数。
将权值区间步长超过预设步长的区间拆分为区间步长小于预设步长的区间,能够保障两个新的子区间内用户权值均能趋于均匀分布的情况,利用上述线性拟合算法获得的权值累计函数更加准确,进而确定的用户权值对应的排序信息更加精准。
S720,在每个权重区间内分别对用户权值及对应的用户数量进行拟合获得权值累计函数。
在每个权重区间内,优选地,根据步骤S110提供的方案,对用户权值及各个用户权值对应的用户数量进行拟合,获得各权值区间对应的权值累计函数。
优选地,接收到用户的用户权重后,首先判断其所属的权重区间,在该权值区间内按照步骤S110至步骤S140的步骤获得该用户权重对应的排序信息。
本实施例提出的排名方法,只需加载权值区间的区间参数,无需将所有需要排序的用户的相关信息存储于内存中,有利于降低内存消耗量,提高内存中数据的命中率,进而提高获得用户排名数据的效率。
进一步地,本申请实施例还提供了一种榜单展示方法,包括:根据上述任一技术方案所述的排序信息的确定方案获得用户权值对应的排序信息,得到包含各用户及对应排序信息的榜单;
将所述榜单上将排名靠前的若干用户的排序信息展示在可视区域,并将其他用户的排序信息展示在隐藏区。
所述榜单上除若干用户的排序信息外,还有所述若干用户的识别信息及用户权重。本实施例提供的榜单的结构示意图如图8所示,榜单800包括可视区域801和隐藏区域802,榜单上可以包含所有需要排序用户的排序信息,由于展示榜单的区域面积有限,因此将榜单分为可视区域和隐藏区域,可根据实际情况设定显示在可视区域的用户数量。
本实施例将所有用户权值按照权重区间步长划分为多个子权重区间,在子权重区间步长满足阈值范围时,如子权重区间步长足够小时,利用上述排序信息的确定方案获得所有用户的排序信息,将排序靠前的部分用户的排序信息展示于可视区域,将其他用户的排序信息置于榜单的隐藏区。本实施例将排序靠前的若干用户的识别信息、用户权重及对应的排序信息显示于榜单的可视区域内有利于榜单上的平台内所有用户看到排名靠前的用户权重情况,对显示于可视区域内的用户是一种表彰,也有利用激励未出现在可视区域中的用户按照平台激励措施进行相应操作以期显示于可视区域。
进一步地,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的排序信息的确定方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyEraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
更进一步地,本发明实施例还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的排序信息的确定方法。
图9是根据一示例性实施例示出的一种计算机设备900的框图。例如,计算机设备900可以被提供为一服务器。参照图9,计算机设备900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述排名信息的确定方法的步骤。
计算机设备900还可以包括一个电源组件926被配置为执行计算机设备900的电源管理,一个有线或无线网络接口950被配置为将计算机设备900连接到网络,和一个输入输出(I/O)接口958。计算机设备900可以操作基于存储在存储器932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种排序信息的确定方法,其特征在于,包括:
获得当前访问记录中用户的识别信息;
在带有淘汰机制的缓存中查询所述识别信息对应的用户权值是否存储于缓存中;
若是,从缓存中调取所述识别信息对应的用户权值,若否,从数据库中加载该用户权值并加入缓存中,调取所述识别信息对应的用户权值;
判断所述用户权值是否属于排名靠前的若干用户之列,若所述用户权值属于所述若干用户之列,调取排序靠前的所述若干用户的识别信息及对应的用户权值;
基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息;
若所述用户权值不属于所述若干用户之列,获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量,其中,所述需要排序的各个用户为所述当前访问记录中除去所述若干用户之外的用户;
根据需要排序的各个用户的用户权值及对应的用户数量采用线性拟合算法构建权值累计函数,并对权值累计函数进行拟合得到拟合系数;
分别获取每个需要排序的用户的用户权值及对应的第一用户数量,其中,第一用户数量指的是该用户权值超过的用户数量;分别获取每个需要排序的用户的用户权值,并调用所构建的权值累计函数,进而获得每个需要排序的用户的用户权值对应的第一用户数量;
根据所述拟合系数、所述若干用户的用户数量和所述第一用户数量确定需要排序的各个用户的排序信息;
当需要排序的用户数量超过预设阈值时,所述根据需要排序的各个用户的用户权值及对应的用户数量构建权值累计函数的步骤,包括:
根据需要排序的各个用户的用户权值的分布状态将需要排序的所述用户权值划分为多个权重区间;
在每个权重区间内分别对需要排序的用户权值及对应的用户数量进行拟合获得权值累计函数。
2.根据权利要求1所述的排序信息的确定方法,其特征在于,所述根据需要排序的各个用户的用户权值的分布状态将需要排序的所述用户权值划分为多个权重区间的步骤,包括:
依据用户权值最大值与预设区间数量的比值获得用户权值的区间步长。
3.根据权利要求1所述的排序信息的确定方法,其特征在于,所述根据需要排序的各个用户的用户权值的分布状态将需要排序的所述用户权值划分为多个权重区间的步骤,包括:
检测到第一权重区间的区间步长超出预设区间步长,根据所述预设区间步长将所述第一权重区间分割为两个子区间。
4.根据权利要求3所述的排序信息的确定方法,其特征在于,所述检测到第一权值区间的区间步长超出预设区间步长,根据所述预设区间步长将所述第一权值区间分割为两个子区间的步骤,包括:
第一权值区间的上一权值区间为(i*L,(i+1)*L],所述第一权值区间的区间步长超出预设区间步长L,则分裂出子区间((i+1)*L,(i+2)*L],其中,i是表征权值区间数量的整数。
5.根据权利要求1所述的排序信息的确定方法,其特征在于,所述获得需要排序的各个用户的用户权值及各个用户权值对应的用户数量的步骤,包括:
从存储有当前访问信息的哈希表中调取需要排序用户的识别信息对应的用户权值,以及所述用户权值对应的用户数量。
6.根据权利要求1所述的排序信息的确定方法,其特征在于,所述基于存储有识别信息及对应用户权值的有序集获得所述若干用户的排序信息的步骤,包括:
将按照权值大小排序的用户权值及对应的识别信息存储于有序集中;
将用户的识别信息及其在有序集中的存储位置存储于字典中;
查询所述字典确定当前访问的识别信息对应的用户权值,查询所述有序集获得所述用户权值对应的排序信息。
7.一种榜单展示方法,其特征在于,包括:
根据权利要求1至6任一项所述的排序信息的确定方法获得用户权值对应的排序信息,得到包含各用户及对应排序信息的榜单;
将所述榜单上排名靠前的若干用户的排序信息展示在可视区域,并将其他用户的排序信息展示在隐藏区。
8.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至6中任意一项所述的排序信息的确定方法或如权利要求7所述的榜单展示方法的步骤。
CN201811385642.2A 2018-11-20 2018-11-20 排序信息的确定方法、榜单展示方法及计算机设备 Active CN109582902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811385642.2A CN109582902B (zh) 2018-11-20 2018-11-20 排序信息的确定方法、榜单展示方法及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811385642.2A CN109582902B (zh) 2018-11-20 2018-11-20 排序信息的确定方法、榜单展示方法及计算机设备

Publications (2)

Publication Number Publication Date
CN109582902A CN109582902A (zh) 2019-04-05
CN109582902B true CN109582902B (zh) 2022-02-11

Family

ID=65923479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811385642.2A Active CN109582902B (zh) 2018-11-20 2018-11-20 排序信息的确定方法、榜单展示方法及计算机设备

Country Status (1)

Country Link
CN (1) CN109582902B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111192027B (zh) * 2019-12-31 2023-07-18 广州市百果园信息技术有限公司 榜单处理方法、装置及计算机可读存储介质
CN111265887A (zh) * 2020-01-21 2020-06-12 网易(杭州)网络有限公司 游戏竞争力动态排名方法、装置、介质及电子设备
CN111708954B (zh) * 2020-05-22 2023-10-27 微梦创科网络科技(中国)有限公司 一种排行榜的排名方法及系统
CN112307059B (zh) * 2020-10-30 2023-11-28 腾讯科技(深圳)有限公司 一种排行榜管理方法、装置、计算机设备和存储介质
CN114328558B (zh) * 2021-12-30 2022-12-27 北京达佳互联信息技术有限公司 一种榜单更新方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095923A (zh) * 2016-06-12 2016-11-09 微梦创科网络科技(中国)有限公司 一种在有序榜单中添加上榜数据的方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970768B (zh) * 2013-01-29 2018-07-20 腾讯科技(深圳)有限公司 获取排名的方法及系统
CN106682004A (zh) * 2015-11-06 2017-05-17 网宿科技股份有限公司 一种Redis Key管理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095923A (zh) * 2016-06-12 2016-11-09 微梦创科网络科技(中国)有限公司 一种在有序榜单中添加上榜数据的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
如何高效地获得玩家排名?;泥巴孩等;《https://www.zhihu.com/question/27167883》;20171017;第1-8页 *

Also Published As

Publication number Publication date
CN109582902A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN109582902B (zh) 排序信息的确定方法、榜单展示方法及计算机设备
CN109166017B (zh) 基于重聚类的推送方法、装置、计算机设备及存储介质
US20110320715A1 (en) Identifying trending content items using content item histograms
CN109889426B (zh) 基于即时通信的信息处理方法、装置及系统
US10673722B2 (en) Search result suggestions based on dynamic network latency classification
US9471696B2 (en) Methods and systems for pathing analysis
JP5483576B2 (ja) 推薦アイテムフィルタリング方法及び推薦アイテムフィルタリングプログラム
CN109547807B (zh) 一种基于直播的信息处理方法、装置及服务器
US20180203909A1 (en) Triggering method for instant search
US11379539B2 (en) Efficient freshness crawl scheduling
US20170359433A1 (en) Scalable management of composite data collected with varied identifiers
CN113034241A (zh) 一种产品信息推荐方法及计算机设备
CN111966887B (zh) 动态缓存方法及装置、电子设备、存储介质
CN111198961B (zh) 商品搜索方法、装置及服务器
WO2018202127A1 (zh) 信息推送方法及装置、存储介质和电子装置
US20240073291A1 (en) Identifying outdated cloud computing services
CN108228598B (zh) 媒体信息排序方法、服务器和系统
CN113326436B (zh) 确定推荐资源的方法、装置、电子设备和存储介质
WO2022267183A1 (zh) 预计算模型的评分方法、装置、设备和存储介质
US10165077B2 (en) Cache management in a composite data environment
US20080232265A1 (en) Communication terminal, data exchange method, and computer product
CN114549106A (zh) 商家信息展示的方法、装置、存储介质及电子设备
US20110238686A1 (en) Caching data obtained via data service interfaces
CN117520373A (zh) 数据检索方法、装置、设备及存储介质
CN117291679A (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
GR01 Patent grant
GR01 Patent grant