排行榜生成方法、装置、设备、系统及存储介质与流程

    专利2026-01-24  7


    本发明涉及计算机,尤其涉及一种排行榜生成方法、装置、设备、系统及存储介质。


    背景技术:

    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、第八方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一种所述的排行榜生成方法,或实现如上述第二方面任一种所述的排行榜生成方法。

    32、第九方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一种所述的排行榜生成方法,或实现如上述第二方面任一种所述的排行榜生成方法。

    33、本发明提供的排行榜生成方法、装置、设备、系统及存储介质,首先,后端服务器针对每个用户,响应于用户触发的影响排行的操作,在分布式内存数据库中存储的用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,得到当前累计操作数据;由于采用自增操作来代替现有的查询、计算和存储操作,使得用户的单次操作无需连接两次数据库;并且,由于自增为原子操作,是不可分割的,不会因为窗口期问题导致最终计算错误,所以用户无需等待上一次操作结束就可以连续进行操作;这样,可以提升用户单次操作的响应效率,使用户体验更加流畅;而后,从分布式内存数据库中查询已经排序完成的各用户的当前累计操作数据,得到排序数据;由于在当前累计操作数据存储到分布式内存数据库时就已经排序完成,无需分组查询所有用户数据并进行排序,可以极大地提升数据统计效率;最后,通过后端服务器与前端服务器之间的长连接通道向前端服务器推送一次服务器发送事件,服务器发送事件携带排序数据,以使前端服务器基于排序数据生成排行榜;由于通过长连接通道推送携带排序数据的服务器发送事件,这个过程仅毫秒级别,且数据传输更稳定,可以提升排行榜生成的实时性。因此,本发明可以提升用户单次操作的响应效率,使用户体验更加流畅,并且可以提升排行榜生成的实时性。


    技术特征:

    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所述的排行榜生成方法。


    技术总结
    本发明提供一种排行榜生成方法、装置、设备、系统及存储介质,涉及计算机技术领域,该方法包括:针对每个用户,响应于用户触发的影响排行的操作,在分布式内存数据库中存储的用户的标识对应的历史累计操作数据的基础上自增本次操作的操作数据,得到当前累计操作数据;自增为原子操作;从分布式内存数据库中查询已经排序完成的各用户的当前累计操作数据,得到排序数据;通过后端服务器与前端服务器之间的长连接通道向前端服务器推送一次服务器发送事件,服务器发送事件携带排序数据,以使前端服务器基于排序数据生成排行榜。本发明可以提升用户单次操作的响应效率,使用户体验更加流畅,并且可以提升排行榜生成的实时性。

    技术研发人员:雷超,于鑫
    受保护的技术使用者:北京声智科技有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-94213.html

    最新回复(0)