System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种排行榜生成方法、装置、设备、系统及存储介质。
技术介绍
1、排行榜在各种应用场景中随处可见,尤其是在游戏场景中。现有的排行榜生成方案包括:每个用户在进行影响排行的操作后,将数据a传递到后端服务器,后端服务器到数据库查询历史数据b,然后得到当前数据c=a+b。将数据c存储入库成功后,返回告知前端服务器。前端服务器确认本次操作完成后用户才能进行下一次操作。所有用户的前端页面将定时轮询调用排行榜接口,获取最新的排行数据并渲染显示以实现数据刷新,这个定时周期一般为几秒到几分钟不等,同时过程中需要分组查询所有用户数据并进行排序,从而生成排行榜。
2、因此,现有技术的不足在于:1)单次操作需要连接两次数据库,例如从数据库查询历史数据b和存储数据c到数据库;而且,为防止出现执行顺序错乱问题,只能限制用户在上一次操作完成后才能进行下一次操作;这样,会极大地影响用户单次操作的响应效率,给用户造成不好的使用体验;2)所有用户能看到的排行榜数据,都是基于前端服务器主动轮询调用后端服务排行榜接口实现数据刷新,那么两次调用的间隔已经对实时性造成了影响,同时这个过程又包含请求到达后端的时间、后端查询时间和数据返回时间,其中后端查询数据本身就耗时较长,且请求到达后端的时间也会受网络原因影响,二者导致实时性更加难以保证。
技术实现思路
1、本专利技术提供一种排行榜生成方法、装置、设备、系统及存储介质,可以提升用户单次操作的响应效率,使用户体验更加流畅,并且可以提升排行
2、第一方面,本专利技术提供一种排行榜生成方法,应用于后端服务器,所述方法包括:
3、针对每个用户,响应于所述用户触发的影响排行的操作,在分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,得到当前累计操作数据;所述自增为原子操作;
4、从所述分布式内存数据库中查询已经排序完成的各所述用户的所述当前累计操作数据,得到排序数据;
5、通过所述后端服务器与前端服务器之间的长连接通道向所述前端服务器推送一次服务器发送事件,所述服务器发送事件携带所述排序数据,以使所述前端服务器基于所述排序数据生成排行榜。
6、根据本专利技术提供的一种排行榜生成方法,所述在分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,包括:
7、调用携带所述用户的标识和所述本次操作的操作数据的自增指令,在所述分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增所述本次操作的操作数据。
8、根据本专利技术提供的一种排行榜生成方法,所述从所述分布式内存数据库中查询已经排序完成的各所述用户的所述当前累计操作数据,包括:
9、在所述当前累计操作数据存储到所述分布式内存数据库的过程中,对各所述用户的所述当前累计操作数据进行排序;
10、查询已经排序完成的各所述用户的所述当前累计操作数据。
11、根据本专利技术提供的一种排行榜生成方法,所述在所述当前累计操作数据存储到所述分布式内存数据库的过程中,对各所述用户的所述当前累计操作数据进行排序,包括:
12、以有序集合作为所述分布式内存数据库的数据存储格式,在所述当前累计操作数据加入所述有序集合的过程中,对各所述用户的所述当前累计操作数据进行排序。
13、根据本专利技术提供的一种排行榜生成方法,所述有序集合的元素为用户的标识,所述有序集合的分数为用户的所述当前累计操作数据,所述有序集合的值为用户的最后一次操作的纳秒级时间戳。
14、第二方面,本专利技术还提供一种排行榜生成方法,应用于前端服务器,所述方法包括:
15、监听后端服务器通过所述后端服务器与所述前端服务器之间的长连接通道推送的服务器发送事件;
16、在监听到所述服务器发送事件的情况下,获取所述服务器发送事件中携带的排序数据;所述排序数据是所述后端服务器从分布式内存数据库中查询到的已经排序完成的各用户的当前累计操作数据;所述当前累计操作数据是在所述分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据得到的;所述本次操作为所述用户触发的影响排行的操作;所述自增为原子操作;
17、基于所述排序数据生成排行榜。
18、根据本专利技术提供的一种排行榜生成方法,还包括:
19、在所述前端服务器启动时,向所述后端服务器发送长连接请求,以建立所述后端服务器与所述前端服务器之间的长连接通道。
20、第三方面,本专利技术还提供一种排行榜生成装置,包括:
21、数据计算模块,用于针对每个用户,响应于所述用户触发的影响排行的操作,在分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,得到当前累计操作数据;所述自增为原子操作;
22、数据查询模块,用于从所述分布式内存数据库中查询已经排序完成的各所述用户的所述当前累计操作数据,得到排序数据;
23、事件推送模块,用于通过后端服务器与前端服务器之间的长连接通道向所述前端服务器推送一次服务器发送事件,所述服务器发送事件携带所述排序数据,以使所述前端服务器基于所述排序数据生成排行榜。
24、第四方面,本专利技术还提供一种排行榜生成装置,包括:
25、事件监听模块,用于监听后端服务器通过所述后端服务器与前端服务器之间的长连接通道推送的服务器发送事件;
26、数据获取模块,用于在监听到所述服务器发送事件的情况下,获取所述服务器发送事件中携带的排序数据;所述排序数据是所述后端服务器从分布式内存数据库中查询到的已经排序完成的各用户的当前累计操作数据;所述当前累计操作数据是在所述分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据得到的;所述本次操作为所述用户触发的影响排行的操作;所述自增为原子操作;
27、排行榜生成模块,用于基于所述排序数据生成排行榜。
28、第五方面,本专利技术还提供一种后端服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面任一种所述的排行榜生成方法。
29、第六方面,本专利技术还提供一种前端服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第二方面任一种所述的排行榜生成方法。
30、第七方面,本专利技术还提供一种排行榜生成系统,包括第五方面所述的后端服务器和第六方面所述的前端服务器。
31、第八方面,本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一种所述的排行榜生成方法,或实现如上述第二方面任一种所述的排行榜生成方法。
本文档来自技高网...
【技术保护点】
1.一种排行榜生成方法,其特征在于,应用于后端服务器,所述方法包括:
2.根据权利要求1所述的排行榜生成方法,其特征在于,所述在分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,包括:
3.根据权利要求1所述的排行榜生成方法,其特征在于,所述从所述分布式内存数据库中查询已经排序完成的各所述用户的所述当前累计操作数据,包括:
4.根据权利要求3所述的排行榜生成方法,其特征在于,所述在所述当前累计操作数据存储到所述分布式内存数据库的过程中,对各所述用户的所述当前累计操作数据进行排序,包括:
5.根据权利要求4所述的排行榜生成方法,其特征在于,所述有序集合的元素为用户的标识,所述有序集合的分数为用户的所述当前累计操作数据,所述有序集合的值为用户的最后一次操作的纳秒级时间戳。
6.一种排行榜生成方法,其特征在于,应用于前端服务器,所述方法包括:
7.根据权利要求6所述的排行榜生成方法,其特征在于,还包括:
8.一种排行榜生成装置,其特征在于,包括:
9
10.一种后端服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的排行榜生成方法。
11.一种前端服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求6或7所述的排行榜生成方法。
12.一种排行榜生成系统,其特征在于,包括如权利要求10所述的后端服务器和如权利要求11所述的前端服务器。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的排行榜生成方法,或实现如权利要求6或7所述的排行榜生成方法。
...【技术特征摘要】
1.一种排行榜生成方法,其特征在于,应用于后端服务器,所述方法包括:
2.根据权利要求1所述的排行榜生成方法,其特征在于,所述在分布式内存数据库中存储的所述用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,包括:
3.根据权利要求1所述的排行榜生成方法,其特征在于,所述从所述分布式内存数据库中查询已经排序完成的各所述用户的所述当前累计操作数据,包括:
4.根据权利要求3所述的排行榜生成方法,其特征在于,所述在所述当前累计操作数据存储到所述分布式内存数据库的过程中,对各所述用户的所述当前累计操作数据进行排序,包括:
5.根据权利要求4所述的排行榜生成方法,其特征在于,所述有序集合的元素为用户的标识,所述有序集合的分数为用户的所述当前累计操作数据,所述有序集合的值为用户的最后一次操作的纳秒级时间戳。
6.一种排行榜生成方法,其特征在于,应用于前端服务器,所述方法包括:
7.根据...
【专利技术属性】
技术研发人员:雷超,于鑫,
申请(专利权)人:北京声智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。