一种用户排名获得方法、装置及服务器的制造方法_2

文档序号:9750995阅读:来源:国知局
>[0052]所述累加模块,用于将接收到的各个区域的排名累加;
[0053]所述确定模块,用于将累加后的排名减一作为当前用户在所有区域中的总排名。
[0054]本发明提供了一种服务器,所述服务器包括:
[0055]壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
[0056]获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数;
[0057]遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数;
[0058]查找保存了所述第一积分所在积分区间的每个目标子节点;
[0059]根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。
[0060]为达到上述目的,本发明还提供了一种存储介质,其中,该存储介质用于存储应用程序,所述应用程序用于在运行时执行本申请所述的一种用户排名获得方法。其中,本申请所述的一种用户排名获得方法,应用于每个区域的服务器,所述方法包括:
[0061]获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数;
[0062]遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数;
[0063]查找保存了所述第一积分所在积分区间的每个目标子节点;
[0064]根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。
[0065]为达到上述目的,本发明还提供了一种应用程序,其中,该应用程序用于在运行时执行本申请所述的一种用户排名获得方法。其中,本申请所述的一种用户排名获得方法,应用于每个区域的服务器,所述方法包括:
[0066]获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数;
[0067]遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数;
[0068]查找保存了所述第一积分所在积分区间的每个目标子节点;
[0069]根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。
[0070]本发明实施例提供的一种用户排名获得方法、装置及服务器,获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数,遍历已建立的积分二叉树,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数,查找保存了所述第一积分所在积分区间的每个目标子节点,根据所述排名基数、每个目标子节点在积分二叉树中的位置,及每个目标子节点中保存的用户的个数,计算出当前用户在所在区域的排名。本发明通过遍历累加积分二叉树中每个目标子节点中保存的用户个数获得各个用户的排名,由于累加次数较少且累加次数与用户量无关,达到减少数据计算量,减少系统资源占用的目的。
【附图说明】
[0071]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072]图1为本发明实施例提供的一种用户排名获得方法的流程示意图;
[0073]图2为本发明实施例提供的当前用户A所在区域的积分二叉树的示意图;
[0074]图3为本发明实施例提供的另一种用户排名获得方法的流程示意图;
[0075]图4为本发明实施例提供的另一种用户排名获得方法的流程示意图;
[0076]图5为本发明实施例提供的计算当前用户A在所有区域中的总排名的示意图;
[0077]图6为本发明实施例提供的一种用户排名获得装置的结构示意图;
[0078]图7为本发明实施例提供的一种服务器的结构示意图。
【具体实施方式】
[0079]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080]如图1所示,本发明实施例提供的一种用户排名获得方法,应用于每个区域的服务器,所述方法可以包括:
[0081]SlOl:获得当前用户的第一积分,所述当前用户的第一积分对应一个排名基数。
[0082]服务器根据用户就近的原则存储数据,所述数据可以包括图片、短信或视频等。
[0083]例如:新注册的用户来自印度,离印度最近的服务器部署在新加坡,那么用户所在区域的服务器为新加坡部署的服务器,新加坡部署的服务器中将存储该用户存储的图片、短ig或视频等。
[0084]在当前用户对存储数据进行备份/还原操作时,当前用户所在区域的服务器将备份/还原操作对应的精简数据写入缓冲区。
[0085]例如:用户4第一次备份了10张图片,则在缓冲区写入{4:[匕&1?化,10]},1分钟后,用户A第二次原了20条sms短信,则在缓冲区继续写入,此时缓冲区数据更新为{A:[[bak,pic,10],[res, sms,20]]}。
[0086]当在缓冲区预设超时时间内,当前用户对存储数据没有进行备份/还原操作时,则将以上缓冲区的精简数据写入消息队列作为备份数据,等待服务器读取并进行下一步处理。
[0087]例如:缓冲区预设超时时间为5分钟,5分钟后用户A没有操作,此时将{A:[ [bak,pic, 10],[res,sms,20]]}写入消息队列。
[0088]其中,步骤SlOl可以包括:
[0089]获得当前用户的备份数据;
[0090]根据所述获得的备份数据计算出当前用户的第一积分。
[0091]读取消息队列中的当前用户的备份数据,根据所述备份数据中备份/还原操作次数等信息计算出当前用户的第一积分。实际应用中,按照预设的积分获得原则,备份/还原操作针对的类型不同,则获得积分也可以不相同。
[0092]例如:假设备份I张图片获得2分,还原I条sms短信记录获得I分,则对于以下的数据:{A: [[bak,pic,50],[res,sms,100]]},获得的积分为:50*2+100*1 = 200,因此用户A的第一积分为200分。
[0093]S102:遍历已建立的积分二叉树。
[0094]其中,所述积分二叉树为当前用户所在区域的积分二叉树,所述积分二叉树的每个节点中保存了一个积分区间及积分处于该积分区间内的用户个数。
[0095]具体的,所述积分二叉树的根节点保存的积分区间为:当前用户所在区域中的积分中的最小值与最大值组成的积分区间;所述积分二叉树的根节点保存的积分处于该积分区间内的用户个数为当前用户所在区域中的用户的总个数;每个节点包含的积分区间的长度为积分区间中的最大值与最小值的差,且叶子节点所包含的积分区间的长度为I。
[0096]由于用户的积分数据量庞大,本发明实施例对每个区域的用户的积分数据进行积分分区统计,建立积分二叉树,所述积分二叉树中的每个节点的形式为[a,b,c],a为当前用户所在区域中的积分中的最小值,b为当前用户所在区域中的积分中的最大值,c表示积分处于该积分区间内的用户个数。
[0097]例如:当前用户A所在区域中的最高积分不超过1000000分,用户A所在区域中用户的总个数为2 O O O O O人,其中,所在区域中用户积分为O分的有2人,用户积分为I分的有4人,用户积分为499000分的有30人,
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1