掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:29:13


一种数据处理方法、装置、设备及存储介质

技术领域

本申请涉及数据处理领域,涉及但不限于一种数据处理方法、装置、设备及存储介质。

背景技术

电商平台的竞争日趋激烈化,平台为了激励推客能给平台带来更多的订单量和商品交易总额,通常会发布一些排行榜(例如,订单排行榜或商品交易总额排行榜),以激励推客。

目前,平台通常是利用关系型数据库(MYSQL数据库)或远程字典服务(RemoteDictionary Server,Redis)数据库来生成排序榜,由于MYSQL数据库在处理较大的数据量(例如几十万或几百万)时性能不佳,且Redis数据库无法实现多维度的排序场景,因此,现有技术中的利用MYSQL数据库或Redis数据库生成的排行榜无法满足多维度的排序需求。

发明内容

本申请实施例为解决相关技术中存在的至少一个问题而提供一种数据处理方法、装置、设备及存储介质,能够实现多维度的排序。

本申请的技术方案是这样实现的:

第一方面,本申请实施例提供一种数据处理方法,所述方法包括:

基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据;所述第一数量大于所述第二数量;所述第一排序结果为基于所述第一数量的待排序数据中每一待排序数据的第一特征的排序结果;

根据所述第二数量的待排序数据中每一待排序数据的第二特征,对所述第二数量的待排序数据进行排序,得到第二排序结果。

第二方面,本申请实施例提供一种数据处理装置,所述装置包括:

处理单元,用于基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据;所述第一数量大于所述第二数量;所述第一排序结果为基于所述第一数量的待排序数据中每一待排序数据的第一特征的排序结果;

排序单元,用于根据所述第二数量的待排序数据中每一待排序数据的第二特征,对所述第二数量的待排序数据进行排序,得到第二排序结果。

第三方面,本申请实施例提供一种电子设备,存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据处理方法中的步骤。

第四方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。

本申请实施例提供了一种数据处理方法、装置、设备及存储介质,基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据;所述第一数量大于所述第二数量;所述第一排序结果为基于所述第一数量的待排序数据中每一待排序数据的第一特征的排序结果;从而可以根据第一数量的待排序数据中每一待排序数据的第一特征,得到第一排序结果,再基于第一排序结果从第一数量的待排序数据中抽取第二数量的待排序数据,在抽取第二数量的待排序数据后,根据该第二数量的待排序数据中每一待排序数据的第二特征,再对该第二数量的待排序数据进行排序,得到第二排序结果。这样,在对待排序数据进行排序的过程中,可以先根据第一维度的特征,即第一特征,对第一数量的待排序数据进行排序,得到第一排序结果,再在该第一排序结果的基础上,根据第二维度的特征,即第二特征,对第二数量的待排序数据进行排序,从而可以实现对待排序数据进行多维度的排序。

附图说明

图1为本申请实施例提供的一种数据处理系统;

图2为本申请实施例提供的另一种数据处理系统;

图3为本申请实施例提供的数据处理方法的可选地流程示意图;

图4为本申请实施例提供的数据处理方法的可选地流程示意图;

图5为本申请实施例提供的数据处理装置的可选地结构示意图;

图6为本申请实施例提供的电子设备的可选地结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

本申请实施例可提供为数据处理方法及装置、设备(例如电子设备)和存储介质(例如计算机可读存储介质)。实际应用中,数据处理方法可利用数据处理装置实现。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

本申请实施例的数据处理方法可应用于图1或图2所示的数据处理系统100,如图1所示,该数据处理系统100包括服务器10和客户端20。其中,服务器10和客户端20之间通过网络30进行通信。

客户端20在获取待排序数据后,将该待排序数据通过网络30发送至服务器10,服务器10在获取待排序数据后,对该待排序数据进行排序,并将排序结果通过网络30发送至客户端20。

如图2所示,该数据处理系统100包括服务器10和多个(至少两个)客户端20。其中,服务器10和多个客户端20之间通过网络30进行通信。

服务器10从多个客户端20收集待排序数据,在收集了待排序数据后,对该待排序数据进行排序,并将排序结果通过网络30发送至客户端20。

本申请实施例提供一种数据处理方法,该方法应用于数据处理装置。该数据处理装置所实现的功能可以通过服务器中的处理器调用程序代码来实现,当然程序代码可以保存在存储器中,可见,该服务器至少包括处理器和存储器。

下面通过附图及具体实施例对本申请做进一步的详细说明。

图3为本申请实施例的一种数据处理方法的实现流程示意图,该方法应用于服务器,如图3所示,该方法可以包括如下步骤:

S301、服务器基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据。

其中,第一数量大于第二数量;所述第一排序结果为基于第一数量的待排序数据中每一待排序数据的第一特征的排序结果。

在一示例中,待排序数据为商品,待排序数据的特征包括:用户的订单量、用户的商品交易总额、用户购物车中的商品数量;待排序数据为学生,待排序数据的特征包括:学生的各个学科的成绩、学生的总成绩;待排序数据为员工,待排序数据的特征包括:员工的月工作量、员工的月销售量、以及员工的评分等,第一特征是待排序数据的特征中的任一一个。其中,待排序数据本身可包括第一特征,也可不包括第一特征。在一示例中,待排序数据包括各用户的标识:用户1的标识1、用户2的标识2和用户3的标识3,且各标识对应的第一特征的值分别为:50、20和30。在一示例中,待排序数据包括:(标识1,50)、(标识2,20)、(标识3,30)。

在一示例中,第一数量的待排序数据,包括:标识1、标识2、标识3至标识1200;第一数量的待排序数据中每一待排序数据的第一特征,包括:标识1对应的订单量10,标识2对应的订单量20,标识3对应的订单量30,标识4对应的订单量40,标识5对应的订单量50至标识1200对应的订单量10000等;第一排序结果,包括:标识1200、标识1199、标识1198至标识1;其中,服务器基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中,抽取第二数量的待排序数据,例如,1000个待排序数据,该1000个待排序数据,包括:标识1、标识2、标识3至标识1000。

需要说明的是,本申请实施例不对第一排序结果的排序方式进行限定。可以是利用Redis数据库中的zset结构,对第一数量的待排序数据进行排序,得到第一排序结果,也可以是利用内存排序,对第一数量的待排序数据进行排序,得到第一排序结果。

S302、服务器根据所述第二数量的待排序数据中每一待排序数据的第二特征,对所述第二数量的待排序数据进行排序,得到第二排序结果。

其中,第二特征是待排序数据的特征中的任一一个,且不同于上述第一特征的一个特征。其中,待排序数据本身可包括第二特征,也可不包括第二特征。在一示例中,待排序数据包括各用户的标识:用户1的标识1、用户2的标识2和用户3的标识3,且各标识的第二特征的值分别为:100、200和300。在一示例中,待排序数据包括:(标识1,100)、(标识2,200)、(标识3,300)。

在一示例中,第二数量的待排序数据,包括:标识1、标识2、标识3至标识1000;第二数量的待排序数据中每一待排序数据的第二特征,包括:标识1对应的商品交易总额为100,标识2对应的商品交易总额为200,标识3对应的商品交易总额为300,标识4对应的商品交易总额为400,标识5对应的商品交易总额为500至标识1000对应的商品交易总额为100000。服务器对这1000个待排序数据的商品交易总额进行降序排序,得到第二排序结果,该第二排序结果为标识1000、标识999、标识998至标识1。

需要说明的是,本申请实施例不对第二排序结果的排序方式进行限定。本申请对第二排序结果的排序方式可以是利用Redis数据库中的zset结构,对第二数量的待排序数据进行排序,得到第二排序结果,也可以是利用内存排序,对第二数量的待排序数据进行排序,得到第二排序结果。

本申请实施例中,在对第二数量的待排序数据进行排序,得到第二排序结果的过程中,可以是直接对第二数量的待排序数据进行排序,得到第二排序结果;也可以是先对第二数量的待排序数据进行筛选,在筛选后,再对保留下来的数据进行排序,以得到第二排序结果。

需要说明的是,本实施例中,基于每一待排序数据的第一特征得到的第一排序结果,和基于每一待排序数据的第二特征得到的第二排序结果,可以是对第一特征降序排列,第二特征升序排列;也可以是对第一特征升序排列,第二特征降序排列;也可以是对第一特征和第二特征降序排列;还可以是对第一特征和第二特征升序排列;本申请实施例对此不作限制。

本申请实施例提供的一种数据处理方法,基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据;所述第一数量大于所述第二数量;所述第一排序结果为基于所述第一数量的待排序数据中每一待排序数据的第一特征的排序结果;从而可以根据第一数量的待排序数据中每一待排序数据的第一特征,得到第一排序结果,再基于第一排序结果从第一数量的待排序数据中抽取第二数量的待排序数据,在抽取第二数量的待排序数据后,根据该第二数量的待排序数据中每一待排序数据的第二特征,再对该第二数量的待排序数据进行排序,得到第二排序结果。这样,在对待排序数据进行排序的过程中,可以先根据第一维度的特征,即第一特征,对第一数量的待排序数据进行排序,得到第一排序结果,再在该第一排序结果的基础上,根据第二维度的特征,即第二特征,对第二数量的待排序数据进行排序,从而可以实现对待排序数据进行多维度的排序。

在一些实施例中,在上述S301之前,所述数据处理方法还包括:

S303、服务器根据第三数量的待排序数据中每一待排序数据的第三特征,对所述第三特征的待排序数据进行排序,得到第三排序结果。

其中,第三数量大于第一数量。

这里,第三特征是待排序数据的特征中任一一个,且不同于上述第一特征和第二特征的一个特征。在一示例中,第一特征为用户的订单量,第二特征为用户的商品交易总额,第三特征为用户购物车中的商品数量。

其中,待排序数据本身可包括第三特征,也可不包括第三特征。在一示例中,待排序数据包括各用户的标识:用户1的标识1、用户2的标识2和用户3的标识3,且各标识的第三特征的值分别为:10、20和30。在一示例中,待排序数据包括:(标识1,10)、(标识2,20)、(标识3,30)。

在一示例中,第三数量的待排序数据,包括:标识1、标识2、标识3至标识2000;第三数量的待排序数据中每一待排序数据的第三特征,包括:标识1对应的购物车中的商品数量为10,标识2对应的购物车中的商品数量为20,标识3对应的购物成中的商品数量为30,至标识2000对应的购物车中的商品数量为100;其中,服务器根据第三数量的待排序数据中每一待排序数据的购物车中的商品数量,对该第三数量的待排序数据的购物车中的商品数量进行降序排序,得到第三排序结果,该第三排序结果,包括:标识2000、标识1999、标识1998至标识1。

S304、服务器基于所述第三排序结果,从所述第三数量的待排序数据中获取所述第一数量的待排序数据。

这里,服务器在确定了第三排序结果后,可以基于该第三排序结果,从第三数量的待排序数据中获取第一数量的待排序数据。

需要说明的是,本申请实施例仅是从三个维度的特征对待排序数据进行排序的,在实际应用中,还可以从四个以上的维度的特征对待排序数据进行排序。这样,不仅可以根据第一维度的特征,即第一特征和第二维度的特征,即第二特征对待排序数据进行排序,还可以根据其他一个或多个维度的特征(例如第三特征)对待排序数据进行排序,从而可以实现从多个维度对待排序数据进行排序。

在一些实施例中,在S301之前,所述数据处理方法还包括:

S305、服务器将第一数量的待排序数据中每一待排序数据输入至排序数据库,并设置排序数据库的排序依据为待排序数据的第一特征。

这里,排序数据库可以根据输入至该排序数据库的每一待排序数据的第一特征,对第一数量的待排序数据进行排序。示例的,该排序数据库可以是Redis数据库,例如,可以利用该Redis数据库中的zset结构,根据每一待排序数据的第一特征,对第一数量的待排序数据进行排序。

本申请实施例中,zset结构为Redis数据库中的一种数据结构。zset结构包括:zset 。其中,key为有序集;score为第一特征,value为第一数量的待排序数据中每一待排序数据,一个待排序数据对应一个第一特征。在一示例中,将第一数量的待排序数据中每一待排序数据的第一特征写入至有序集key,以使得排序数据库中的zset结构可以根据第一特征对第一数量的待排序数据进行排序。

在一示例中,第一数量的待排序数据,包括:标识1、标识2、标识3至标识1200;第一数量的待排序数据中每一待排序数据的第一特征,包括:标识1对应的订单量10,标识2对应的订单量20,标识3对应的订单量30,标识4对应的订单量40,标识5对应的订单量50至标识1200对应的订单量10000等;服务器将该第一数量的待排序数据中每一待排序数据输入至Redis数据库,该Redis数据库接收到第一数量的待排序数据后,可以通过该Redis数据库中的zset结构,根据第一数量的待排序数据中每一待排序数据的订单量,对该第一数量的待排序数据进行排序。

在一些实施例中,基于上述S305,上述S301包括下述S301a:

S301a、服务器从排序数据库对第一数量的待排序数据的第一排序结果中,获取第二数量的待排序数据。

这里,排序数据库例如为Redis数据库。可以利用Redis数据库中的zset结构,对第一数量的待排序数据进行排序;在对第一数量的待排序数据进行排序后,得到的第一排序结果包括:标识1200、标识1199、标识1198至标识1,其中,服务器可以从该第一排序结果中获取第二数量的待排序数据。

在一些实施例中,上述S302包括下述S302a和S302b:

S302a、服务器将所述第二数量的待排序数据中,第一参考数据的第一特征与第一待保留数据的第一特征进行比较。

其中,第一参考数据为第二数量的待排序数据中位于第一排序结果的设定次序的待排序数据;第一待保留数据为第一排序结果中位于第一参考数据之后的待排序数据。

在实际应用中,通过排序数据库(例如Redis数据库),根据待排序数据的第一特征对待排序数据进行排序的过程中,由于Reids数据库中相同的数值(例如第一特征)会占名次,因此,在这种情况下,服务器需要将重复的第一特征所对应的待排序数据删除。

在一示例中,若第二数量的待排序数据包括1200个待排序数据,第一排序结果的设定次序为1000,则第一参考数据为1200个待排序数据中位于第1000个的待排序数据,第一待保留数据为第一排序结果中位于第1000个数据之后的待排序数据。其中,将第1000个待排序数据的第一特征的值与第1001至1200个待排序数据的第一特征的值逐个进行比较。例如,在第一特征为用户的订单量的情况下,第一特征的值为表示用户的订单量的具体数值,将第1000个待排序数据的用户的订单量的具体数值与第1001至1200个待排序数据的用户的订单量的具体数值逐个进行比较。

S302b、服务器在所述第一参考数据的第一特征和第一待保留数据的第一特征不同的情况下,将所述第一待保留数据删除。

在一示例中,包括有1200个待排序数据,若第一参考数据为第1000个待排序数据,第一待保留数据为第1000个数据之后的待排序数据,则将第1000个待排序数据的第一特征与第1001个待排序数据的第一特征进行比较,若二者的值不同,则将第1001个待排序数据从1200个待排序数据中删除。

在另一示例中,包括有1200个待排序数据,若第一参考数据为第1000个待排序数据,第一待保留数据为第1000个数据之后的待排序数据,则将第1000个待排序数据的第一特征与第1001个待排序数据的第一特征进行比较,若二者相同,则继续将第1000个待排序数据的第一特征与第1002个待排序数据的第一特征进行比较,若二者不同,则将第1002个待排序数据从1200个待排序数据中删除。

需要说明的是,本申请实施例不对设定次序的具体数值作限制。

在一些实施例中,当不存在保留数据时,该保留数据的第一特征与第一参考数据的第一特征相同,所述数据处理方法还包括:

S306、服务器基于第一数量的待排序数据的第一排序结果,从第一数量的待排序数据中抽取第四数量的待排序数据。

其中,第一数量大于第四数量,且第四数量大于第二数量。

在实际应用中,在没有查找待保留数据的第一特征与第一参考数据的第一特征相同的情况下,需要扩大查找范围,以找到两个第一特征相同的待排序数据。在位于第一参考数据之后的待排序数据的第一特征,与该第一参考数据的第一特征是相同的情况下,则意味着没有找到两个第一特征相同的待排序数据,在这种情况下,服务器将要从第一数量的待排序数据中,多抽取一些待排序数据,即抽取第四数量的待排序数据,以找到两个第一特征相同的待排序数据,从而将重复的待排序数据删除。

S307、服务器将所述第四数量的待排序数据中,第二参考数据的第一特征与第二待保留数据的第一特征进行比较。

其中,第二参考数据为第四数量的待排序数据中位于所述第一排序结果的设定次序的待排序数据,第二待保留数据为在第一排序结果中位于第二参考数据之后的待排序数据;第四数量大于第二数量。

在一示例中,若第四数量的待排序数据包括1400个待排序数据,第一排序结果的设定次序为1000,则第二参考数据为1400个待排序数据中位于第1000个的待排序数据,第二待保留数据为在第一排序结果中位于第1000个数据之后的待排序数据。其中,将第1000个待排序数据的第一特征与第1001至1400个待排序数据的第一特征的值逐个进行比较。

S308、服务器在所述第二参考数据的第一特征和所述第二待保留数据的第一特征不同的情况下,将所述第二待保留数据删除。

在一示例中,包括有1400个待排序数据,若第一参考数据为第1000个待排序数据,第二待保留数据为第1000个数据之后的待排序数据,则将第1000个待排序数据的第一特征与第1001个待排序数据的第一特征进行比较,若二者不同,则将第1001个待排序数据从1400个待排序数据中删除。

在另一示例中,若第一参考数据为第1000个待排序数据,第二待保留数据为第1000个数据之后的待排序数据,则将第1000个待排序数据的第一特征与第1001个待排序数据的第一特征进行比较,若二者相同,则继续将第1000个待排序数据的第一特征与第1002个待排序数据的第一特征进行比较,若二者不同,则将第1002个待排序数据删除。

在一些实施例中,在上述S302之后,数据处理方法还包括:

S309、服务器确定所述第一排序结果中位于所述设定次序之前的待排序数据。

在一示例中,若第一排序结果包括1200个待排序数据,设定次序为第1000个待排序数据,则确定1200个待排序数据中位于前1000个的待排序数据。

S310、服务器根据待排序数据在第一排序结果中的排序,确定待排序数据对应的名次值。

在一示例中,若待排序数据在第一排序结果中的排序为1,则确定该待排序数据对应的名次值为1000;若待排序数据在第一排序结果中的排序为2,则确定该待排序数据对应的名次值为999;以此类推,若待排序数据在第一排序结果中的排序为1000,则确定该待排序数据对应的名次值为1。

S311、服务器将所述名次值输入至对所述第一数量的待排序数据进行排序的排序数据库中。

其中,所述名次值用于和对应待排序数据的第一特征确定对应待排序数据的排序分值。

本申请实施例中,在确定了待排序数据对应的名次值后,服务器可以将名次值输入至第一数量的待排序数据进行排序的排序数据库中。

在一示例中,排序数据库中的zset结构包括:zset ,其中,key为“个人信息”;score为50;value为“张三”;将“张三”对应的值“50”,写入至“个人信息”中,得到zset数据(“个人信息”,“50”,“张三”)。如果张三对应的名次值为5,那么服务器可以先计算出50+5=55,在计算后,执行zset的命令,将原有的zset中的数据(“个人信息”,“50”,“张三”)覆盖掉,存储成最新的zset数据(“个人信息”,“55”“张三”)。

本申请实施例提供的数据处理方法,如图4所示,包括:

S401、服务器获取业务数据。

服务器可以通过调用效果数据服务接口,获取用户参加活动的业务数据。这里,业务数据包括:第一数量的待排序数据,该第一数量的待排序数据中每一待排序数据中包括:第一排序字段和第二排序字段,其中,第一排序字段为第一特征,可以是用户参加活动的订单量(orderNum),第二排序字段为第二特征,可以是用户参加活动的商品交易总额(GrossMerchandise Volume,GMV);或者,第一排序字段可以是用户参加活动的GMV,第二排序字段可以是用户参加活动的订单量orderNum,本申请实施例对此不作限制。

本申请实施例中,服务器可以通过活动的Id(planId),确定用户参加的是哪个活动;服务器可以通过用户的Id(unionId),确定是哪个用户参加了这个活动。

S402、服务器将获取到的业务数据写入zset1结构和个人信息列表中。

本申请实施例中,个人信息列表包括:key:planId+unionId,value:{"GMV":xx,"orderNum":xxx}。在一示例中,value元素为GMV和orderNum,其中,可以将GMV对应的值和orderNum对应的值写入至有序集(key)中。

zset结构可以包括zset1结构,该zset1结构包括:zset1 ,该zset1结构表示将value元素及其score值写入至有序集(key)中。其中,key可以是“all_bank”+planId,score可以是orderNum,value可以是unionId。在一示例中,将unionId对应的orderNum,写入至“all_bank”+planId中。

在一示例中,用户A的unionId为1,orderNum为100;用户B的unionId为2,orderNum为200;用户C的unionId为3,orderNum为300;用户D的unionId为4,orderNum为400;用户E的unionId为5,orderNum为400。

S403、服务器根据所述业务数据,递归获取前X名,其中,X=1000+x。

需要说明的是,在根据第一排序字段(例如orderNum)对业务数据进行排序时,由于redis中相同的orderNum会占名次,因此,服务器在获取前1000个待排序数据的过程中,通常会出现第1000个和第1200个待排序数据的orderNum相同的情况;其中,在第1000个和第1200个待排序数据的orderNum是相同的情况,x等于200。其中,第1000个待排序数据为上述S302中所述的第二数量的待排序数据。

这里,在zset1结构中,key为“all_bank”+planId的情况下,通过调用redis.zRevRangeWithScores(key,0,X)这个函数,以递归获取前X名。

S404、服务器逐个判断第1000名的orderNum和第1001至第1000+x名的orderNum是否相等。

如果均相等,则执行下述S405。如果均不相等,则执行下述S406,

S405、服务器增大x。

在增大x后,服务器将继续判断第1000名和第1000+x名的orderNum是否相等,直到找到第1000名和第1000+x名的orderNum不相等为止。

在一示例中,在X=1000+200的情况下,服务器将会对1000名的orderNum逐个和第1001至1200名的orderNum进行比较,找到第一个和第1000名的orderNum不同的用户,如果找不到,那么将x设置为400继续递归查找,直到找到和第1000名的orderNum不相同的用户为止。

S406、服务器对前1000+x名在内存中做精确排序,得到最终前1000名。

这里,可以根据前1000+x名的GMV,对该前1000+x名进行排序,以得到最终的前1000名,并将该最终的前1000名存储到Redis新的zset2结构中,在该zset2结构,包括:zset2 key:“top”+planId,score:名次,value:unionId。

本申请实施例中,除了将前1000名的数据写入zset2中,还需要对前1000名待排序数据增加各自的名次值。其中,对于第1名,可以增加名次值1000,对于第2名,可以增加名次值999,以此类推,对于第1000名,可以增加名次值1。这样,可以保证在zset1结构中,前1000名和后面的用户是严格区分的。

S407、服务器在zset1结构中,对1000名之后的用户进行排序。

这里,在zset1结构中,key为“all_bank”+planId的情况下,通过调用redis.zRevRangeWithScores(key,1000,y)这个函数,将zset1中1000名之后的数据排名写到个人信息列表中。这样,可以使得每个人在活动详情页上都能看到个人名次。

本申请实施例中,在将zset1中1000名之后的数据排名写到个人信息列表之前,服务器需要先获取S402中的个人信息列表,此处可以通过Redis中的mget命令,批量获取个人信息列表。

本申请实施例中,先通过Redis中的zset结构,对获取到的业务数据,即第一数量的待排序数据,根据第一维度的特征,即第一特征进行排序,得到第一排序结果;再基于第一排序结果从第一数量的待排序数据中抽取第二数量的待排序数据,通过内存排序,根据第二数量的待排序数据的第二维度的特征,即第二特征进行排序,得到第二排序结果。这样,可以使得在利用Redis对第一数量的待排序数据进行排序时的排序速度快,且得到第一排序结果的耗时较短;并且在第一排序结果的基础上,根据第二数量的待排序数据的第二特征,利用内存排序对第二数量的待排序数据进行排序;从而可以将Redis排序和内存排序进行结合,实现在对待排序数据进行排序时,不仅可以对待排序数据进行多维度排序,还可以在进行多维度排序的同时,极大地提高排序速度。

图5为本申请实施例提供的一种数据处理装置,如图5所示,该数据处理装置500包括:

处理单元501,用于基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据;所述第一数量大于所述第二数量;所述第一排序结果为基于所述第一数量的待排序数据中每一待排序数据的第一特征的排序结果;

排序单元502,用于根据所述第二数量的待排序数据中每一待排序数据的第二特征,对所述第二数量的待排序数据进行排序,得到第二排序结果。

在一些实施例中,所述基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据之前,所述排序单元502还用于根据第三数量的待排序数据中每一待排序数据的第三特征,对所述第三数量的待排序数据进行排序,得到第三排序结果;

数据处理装置还包括:获取单元,该获取单元用于基于所述第三排序结果,从所述第三数量的待排序数据中获取所述第一数量的待排序数据;所述第三数量大于所述第一数量。

在一些实施例中,数据处理装置还包括:输入单元;所述基于第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第二数量的待排序数据之前,该输入单元用于将所述第一数量的待排序数据中每一待排序数据输入至排序数据库,并设置所述排序数据库的排序依据为所述待排序数据的第一特征;对应的,处理单元501,具体用于从所述排序数据库对所述第一数量的待排序数据的第一排序结果中,获取第二数量的待排序数据。

在一些实施例中,排序单元502,具体用于将所述第二数量的待排序数据中,第一参考数据的第一特征与第一待保留数据的第一特征进行比较;所述第一参考数据为所述第二数量的待排序数据中位于所述第一排序结果的设定次序的待排序数据,所述第一待保留数据为在所述第一排序结果中位于所述第一参考数据之后的待排序数据;在所述第一参考数据的第一特征和所述第一待保留数据的第一特征不同的情况下,将所述第一待保留数据删除。

在一些实施例中,当不存在保留数据,所述保留数据的第一特征与所述第一参考数据的第一特征相同,处理单元501,还用于基于所述第一数量的待排序数据的第一排序结果,从所述第一数量的待排序数据中抽取第四数量的待排序数据;所述第一数量大于所述第四数量,且所述第四数量大于所述第二数量;数据处理装置还包括:比较单元,该比较单元用于将所述第四数量的待排序数据中,第二参考数据的第一特征与第二待保留数据的第一特征进行比较;所述第二参考数据为所述第四数量的待排序数据中位于所述第一排序结果的设定次序的待排序数据,所述第二待保留数据为在所述第一排序结果中位于所述第二参考数据之后的待排序数据;数据处理装置还包括:删除单元,该删除单元用于在所述第二参考数据的第一特征和所述第二待保留数据的第一特征不同的情况下,将所述第二待保留数据删除。

在一些实施例中,数据处理装置还包括:确定单元;所述根据所述第二数量的待排序数据中每一待排序数据的第二特征,对所述第二数量的待排序数据进行排序,得到第二排序结果之后,该确定单元用于确定所述第一排序结果中位于所述设定次序之前的待排序数据;该确定单元还用于根据所述待排序数据在所述第一排序结果中的排序,确定所述待排序数据对应的名次值;输入单元,还用于将所述名次值输入至对所述第一数量的待排序数据进行排序的排序数据库中;所述名次值用于和对应待排序数据的第一特征值确定对应待排序数据的排序分值。

本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的数据处理方法。

本申请实施例还提供了一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述任一实施例所述的数据处理方法。

需要说明的是,本申请实施例提供的信息处理装置所包括的各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Micro ProcessorUnit)、数字信号处理器(DSP,Digital Signal Processor)或现场可编程门阵列(FPGA,Field-Programmable Gate Array)等。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的信息处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,图6为本申请实施例电子设备的一种硬件实体示意图,如图6所示,所述电子设备600包括:一个处理器601、至少一个通信总线602、至少一个外部通信接口604和存储器605。其中,通信总线602配置为实现这些组件之间的连接通信。在一示例中,电子设备600还包括:用户接口603、其中,用户接口603可以包括显示屏,外部通信接口604可以包括标准的有线接口和无线接口。

存储器605配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及电子设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种物联网设备数据处理方法、装置、设备及存储介质
  • 穿戴式设备及其数据处理方法、装置、设备、存储介质
技术分类

06120112941701