数据处理方法、装置、设备和存储介质与流程

文档序号:25543426发布日期:2021-06-18 20:40
数据处理方法、装置、设备和存储介质与流程

本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。



背景技术:

在互联网产品中,存在多种多样的实时数据分页展示场景,比如电商系统中的商品信息展示场景、搜索引擎中的搜索结果展示场景等,其中涉及的数据均是实时修改、实时添加、总量不断变化的实时数据。这些实时数据受限于客户端设备的显示屏幕大小,多是以分页形式来加载和展示的。在分页展示实时数据的过程中,由于服务端中的数据是实时变化的,导致前一页加载的数据与后续页加载的数据之间很可能存在重复,导致用户体验度低。

目前,针对分页展示的实时数据去重复的方法主要是:在客户端或服务端中,缓存已显示分页的数据以及待显示分页的数据,然后对这些数据进行比较,并剔除重复的数据。但是,这种去重复方法对内存的消耗较高,且会降低客户端或服务端的性能。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据处理方法、装置、设备和存储介质。

本公开实施例提供了一种数据处理方法,该方法包括:

接收客户端发送的数据获取请求;

基于所述数据获取请求,确定数据集中的目标数据分界标识,并基于所述数据集中不超过所述目标数据分界标识的各所述数据确定目标数据;其中,数据分界标识用于表征相应数据存储至所述数据集时的存储顺序;

将所述目标数据作为数据获取响应发送至所述客户端。

本公开实施例还提供了一种数据处理装置,该装置包括:

数据获取请求接收模块,用于接收客户端发送的数据获取请求;

目标数据确定模块,用于基于所述数据获取请求,确定数据集中的目标数据分界标识,并基于所述数据集中不超过所述目标数据分界标识的各所述数据确定目标数据;其中,数据分界标识用于表征相应数据存储至所述数据集时的存储顺序;

数据获取响应发送模块,用于将所述目标数据作为数据获取响应发送至所述客户端。

本公开实施例还提供了一种的电子设备,该电子设备包括:

处理器和存储器;

所述处理器通过调用所述存储器存储的程序或指令,用于执行本公开任意实施例中所述方法的步骤。

本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或所述指令使计算机执行本公开任意实施例中所述方法的步骤。

本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的数据处理方案,基于客户端发送的数据获取请求,从服务端存储实时数据的数据集中确定出目标数据分界标识,以借助该目标数据分界标识将数据集划分为两部分,一部分为数据集中目标数据分界标识及其之前存储的数据,称为已存储数据;另一部分是数据集中目标数据分界标识之后存储的数据,称为新添加数据。并且,根据数据获取请求从数据集中的已存储数据部分中确定出目标数据,将其作为数据获取响应发送给客户端。实现了同一会话中每次均从数据集中的已存储数据中获取数据,避免了新添加数据的干扰,达到数据去重的效果,因避免了数据缓存操作,故降低了数据去重过程对内存的消耗,且因省去了数据比较操作,故提高了服务端或客户端的性能。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种数据处理方法的流程示意图;

图2为本公开实施例提供的一种基于数据处理方法的交互过程示意图;

图3为本公开实施例提供的另一种数据处理方法的流程示意图;

图4为本公开实施例提供的一种数据处理装置的结构示意图;

图5为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步的详细描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

本公开实施例提供的数据处理方法,主要适用于按照某种粒度(如分页或分块等)来获取无重复性的实时数据的场景,例如电商系统中的商品信息展示场景、搜索引擎中的搜索结果展示场景、feed流数据展示场景等。该方法可以由数据获取装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在具有数据存储功能的电子设备中,例如笔记本电脑、台式电脑或服务器等。

图1是本公开实施例提供的一种数据处理方法的流程图。参见图1,该数据处理方法具体包括:

s110、接收客户端发送的数据获取请求。

客户端向数据处理装置发送数据获取请求,以请求获取需要展示的数据。该数据获取请求中至少包含请求参数,即要请求的数据的相关信息,例如请求的数据量、已请求的数据的信息等。

s120、基于数据获取请求,确定数据集中的目标数据分界标识,并基于数据集中不超过目标数据分界标识的各数据确定目标数据。

其中,数据集是用于存储各条数据的集合,其中的数据会实时变化,如添加新的数据、数据存储位置变化等。数据分界标识用于表征相应数据存储至数据集时的存储顺序。数据集中的每条数据在插入数据集时,均会先为相应数据确定存储顺序,然后将该数据及其存储顺序一起插入数据集中。这里的存储顺序是能够表征数据插入数据集的先后顺序。在一些实施例中,数据分界标识为相应数据存储至数据集时的系统时间点或存储顺序编号。目标数据分界标识是对应于本次会话连接的数据分界标识,其用于隔离数据集中的新旧数据,即将数据集划分为两部分,一部分为数据集中目标数据分界标识及其之前存储的数据,称为已存储数据(旧数据);另一部分是数据集中目标数据分界标识之后存储的数据,称为新添加数据(新数据)。

数据处理装置根据数据获取请求中的信息,从数据集中各条数据的数据分界标识中确定出适配当前会话连接的目标数据分界标识。然后,数据处理装置以目标数据分界标识为界限,从已存储数据中获取与数据获取请求对应的数据,作为目标数据。

在一些实施例中,s120中基于数据获取请求,确定数据集中的目标数据分界标识包括:

步骤a、判断数据获取请求是否为当前会话的首次请求。

数据处理装置在接收到数据获取请求后,根据该数据获取请求对应的会话连接(即当前会话)中保留的会话信息(如会话id、会话中执行的请求次数等),判断该数据获取请求是否为首次请求。例如,当前会话的会话信息中的请求次数为0,则判断该数据获取请求为首次请求;反之,若请求次数大于0,则判断数据获取请求为非首次请求,称为后续请求、翻页请求等。

在一些实施例中,步骤a包括:若数据获取请求中携带的初始数据分界标识的取值处于数据分界标识的取值范围之外,则确定数据获取请求为当前会话的首次请求;若初始数据分界标识的取值处于取值范围之内,则确定数据获取请求为当前会话的非首次请求。数据处理装置处理利用当前会话的会话信息来判断是否首次请求之外,还可以利用数据获取请求中携带的数据分界标识(即初始数据分界标识)来判断。该初始数据分界标识可以是预先设定的、不同于任一数据分界标识的某个缺省值,也可以是数据处理装置传输给客户端的目标数据分界标识。具体地,可以预先确定数据分界标识的取值范围,并且预先规定数据获取请求中需包含初始数据分界标识。如果数据获取请求中携带的初始数据分界标识为缺省值或者空值等无效值,那么其取值处于数据分界标识的取值范围之外,认为数据处理装置未向客户端反馈过数据分界标识,则判断该数据获取请求为当前会话的首次请求。如果数据获取请求中携带的初始数据分界标识的取值处于数据分界标识的取值范围之内,认为数据处理装置向客户端反馈过数据分界标识,则判断该数据获取请求为当前会话的非首次请求。这样设置的好处在于,通过将目标数据分界标识作为交互数据进行交互传输,能够更加便捷地判断是否首次请求,以及更加快速地确定目标数据分界标识。

步骤b、基于判断结果确定数据集中的目标数据分界标识。

数据处理装置可以根据是否首次请求来决定确定目标数据分界标识的合适方式,进而确定出正确的目标数据分界标识。

在一些实施例中,步骤b包括:若数据获取请求为当前会话的首次请求,则确定当前时刻数据集中最后存储的数据的数据分界标识为目标数据分界标识。如果数据获取请求为当前会话的首次请求,那么获取当前时刻的数据集中最后插入的一条数据的数据分界标识,并将其确定为当前会话的目标数据分界标识。

在一些实施例中,步骤b包括:若数据获取请求为当前会话的非首次请求,则将数据获取请求中携带的初始数据分界标识确定为目标数据分界标识。考虑到已存储数据中没有新数据的插入,能够确保数据之间相对无变动,故本公开实施例设定同一次会话连接中的数据均从相同的数据子集中获取,即均从由目标数据分界标识划定的已存储数据中获取,以此来确保一次会话连接中多次请求所获的数据之间不重复。鉴于此,在数据获取请求中携带初始数据分界标识的实施例中,目标数据分界标识会作为一次会话连接中的固定交互数据在客户端和数据处理装置对应的服务端之间传输。所以,如果数据获取请求为当前会话的非首次请求,那么该初始数据分界标识便为目标数据分界标识。

s130、将目标数据作为数据获取响应发送至客户端。

数据处理装置将目标数据作为对数据获取响应发送至客户端。

在一些实施例中,s130包括:将目标数据和目标数据分界标识确定为数据获取响应,并将数据获取响应发送至客户端。在数据获取请求需包含初始数据分界标识的实施例中,数据处理装置还需将目标数据分界标识和目标数据一同作为数据获取响应发送至客户端。

参见图2,针对数据获取响应中包含目标数据分界标识的实施方式,数据处理过程中客户端与数据处理装置的交互过程为:当前会话的首次请求中,客户端携带取值为缺省值的初始数据分界标识和请求参数,向数据处理装置发送数据获取请求。数据处理装置按照s110~130的处理后,将目标数据和目标数据分界标识作为数据获取响应发送至客户端。客户端在后续的数据获取请求发送过程中,同样携带初始数据分界标识,但是该初始数据分界标识的内容不再是缺省值,而是目标数据分界标识。然后重复上述交互过程,直至当前会话结束。当客户端和数据处理装置对应的服务端之间建立新的会话时,需要再重新按照上述过程确定新的目标数据分界标识。

本公开实施例的上述技术方案,通过基于客户端发送的数据获取请求,从服务端存储实时数据的数据集中确定出目标数据分界标识,以借助该目标数据分界标识将数据集划分为两部分,一部分为数据集中目标数据分界标识及其之前存储的数据,称为已存储数据;另一部分是数据集中目标数据分界标识之后存储的数据,称为新添加数据。并且,根据数据获取请求从数据集中的已存储数据部分中确定出目标数据,将其作为数据获取响应发送给客户端。实现了同一会话中每次均从数据集中的已存储数据中获取数据,避免了新添加数据的干扰,达到数据去重的效果,因避免了数据缓存操作,故降低了数据去重过程对内存的消耗,且因省去了数据比较操作,故提高了服务端或客户端的性能。

图3是本公开实施例提供的又一种数据处理方法的流程图。其对“基于数据获取请求,确定数据集中的目标数据分界标识”进行了进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图3,该数据处理方法包括:

s210、接收客户端发送的数据获取请求。

s220、基于数据获取请求确定当前会话标识。

数据处理装置根据数据获取请求确定当前会话的会话信息,并从会话信息中确定出会话标识(即当前会话标识)。

s230、基于当前会话标识、会话标识和数据分界标识之间的对应关系,确定数据集中的目标数据分界标识。

对于上述将目标数据分界标识作为交互信息进行交互传输的实施方式,考虑到客户端与服务端交互过程,因网络等原因存在交互信息丢失或信息篡改等情况,其可能造成当前会话对应的目标数据分界标识有误,进而造成同一会话中不同请求获取的数据之间有可能重复。所以,在一些实施例中,可以在服务端一侧存储每次会话中确定的目标数据分界标识,即存储会话标识和数据分界标识之间的对应关系。这样,数据处理装置在确定当前会话标识之后,便可从该存储的对应关系中查找出当前会话标识对应的数据分界标识,并将查找到的数据分界标识确定为当前会话对应的目标数据分界标识。

在一些实施例中,s230包括:若当前会话标识和对应关系满足设定条件,则确定当前时刻数据集中最后存储的数据的数据分界标识为目标数据分界标识;将当前会话标识和目标数据分界标识,对应存储于对应关系中;其中,设定条件为对应关系中没有当前会话标识、对应关系中没有当前会话标识对应的数据分界标识、或者对应关系中当前会话标识对应的数据分界标识的取值处于数据分界标识的取值范围之外。数据处理装置以当前会话标识为索引,对会话标识和数据分界标识之间的对应关系进行查询。如果该对应关系中不存在当前会话标识,或者对应关系中虽存在当前会话标识、但其没有对应的数据分界标识,或者对应关系中存在当前会话标识及其对应的数据分界标识、但该数据分界标识的取值处于数据集的数据分界标识的取值范围之外,那么认为对应关系中不存在当前会话对应的目标数据分界标识。此时,获取当前时刻的数据集中最后插入的一条数据的数据分界标识,并将其确定为当前会话的目标数据分界标识。同时,需要将当前会话标识和该目标数据分界标识对应存储至上述对应关系中。

在一些实施例中,s230包括:若对应关系中当前对话标识对应的数据分界标识的取值处于数据分界标识的取值范围之内,则将当前对话标识对应的数据分界标识确定为目标数据分界标识。如果数据处理装置从对应关系中查找到当前会话标识对应的数据分界标识,且其处于数据集中的数据分界标识的取值范围之内,则将查找到的数据分界标识确定为当前会话对应的目标数据分界标识。

s240、基于数据集中不超过目标数据分界标识的各数据确定目标数据。

s250、将目标数据作为数据获取响应发送至客户端。

本实施例中,只需将目标数据作为数据获取响应发送至客户端即可,目标数据分界标识则将存储于服务端中的对应关系中。

本公开实施例的上述技术方案,通过基于客户端发送的数据获取请求确定当前会话标识;基于当前会话标识、会话标识和数据分界标识之间的对应关系,确定数据集中的目标数据分界标识。实现了在服务端中存储每次会话连接的会话标识及其对应的数据分界标识,进而根据当前会话标识确定目标数据分界标识,以对数据集进行数据划分,从而使得同一次会话中的各数据获取请求均从目标数据分界标识及其之前的已存储数据中获取数据,避免了数据重复,也能简化客户端和服务端的交互信息,避免了因交互过程中目标数据分界标识出错而导致的数据拉取重复,进一步提高数据去重效率。

图4为本公开实施例提供的一种数据处理装置的结构示意图,该装置可通过执行数据处理方法来确保每次按照相同粒度(分页或分块等)获取的数据之间无重复数据。如图4所示,该装置包括:

数据获取请求接收模块410,用于接收客户端发送的数据获取请求;

目标数据确定模块420,用于基于数据获取请求,确定数据集中的目标数据分界标识,并基于数据集中不超过目标数据分界标识的各数据确定目标数据;其中,数据分界标识用于表征相应数据存储至数据集时的存储顺序;

数据获取响应发送模块430,用于将目标数据作为数据获取响应发送至客户端。

在一些实施例中,目标数据确定模块420包括:

首次请求判断子模块,用于判断数据获取请求是否为当前会话的首次请求;

目标数据分界标识确定子模块,用于基于判断结果确定数据集中的目标数据分界标识。

在一些实施例中,目标数据分界标识确定子模块具体用于:

若数据获取请求为当前会话的首次请求,则确定当前时刻数据集中最后存储的数据的数据分界标识为目标数据分界标识。

在一些实施例中,目标数据分界标识确定子模块具体用于:

若数据获取请求为当前会话的非首次请求,则将数据获取请求中携带的初始数据分界标识确定为目标数据分界标识。

在一些实施例中,首次请求判断子模块具体用于:

若数据获取请求中携带的初始数据分界标识的取值处于数据分界标识的取值范围之外,则确定数据获取请求为当前会话的首次请求;

若初始数据分界标识的取值处于取值范围之内,则确定数据获取请求为当前会话的非首次请求。

在一些实施例中,数据获取响应发送模块430具体用于:

将目标数据和目标数据分界标识确定为数据获取响应,并将数据获取响应发送至客户端。

在一些实施例中,目标数据确定模块420包括:

当前会话标识确定子模块,用于基于数据获取请求确定当前会话标识;

目标数据分界标识确定子模块,用于基于当前会话标识、会话标识和数据分界标识之间的对应关系,确定数据集中的目标数据分界标识。

在一些实施例中,目标数据分界标识确定子模块具体用于:

若当前会话标识和对应关系满足设定条件,则确定当前时刻数据集中最后存储的数据的数据分界标识为目标数据分界标识;

将当前会话标识和目标数据分界标识,对应存储于对应关系中;

其中,设定条件为对应关系中没有当前会话标识、对应关系中没有当前会话标识对应的数据分界标识、或者对应关系中当前会话标识对应的数据分界标识的取值处于数据分界标识的取值范围之外。

在一些实施例中,目标数据分界标识确定子模块具体用于:

若对应关系中当前对话标识对应的数据分界标识的取值处于数据分界标识的取值范围之内,则将当前对话标识对应的数据分界标识确定为目标数据分界标识。

在一些实施例中,数据分界标识为相应数据存储至数据集时的系统时间点或存储顺序编号。

通过本公开实施例提供的一种数据处理装置,基于客户端发送的数据获取请求,从服务端存储实时数据的数据集中确定出目标数据分界标识,以借助该目标数据分界标识将数据集划分为两部分,一部分为数据集中目标数据分界标识及其之前存储的数据,称为已存储数据;另一部分是数据集中目标数据分界标识之后存储的数据,称为新添加数据。并且,根据数据获取请求从数据集中的已存储数据部分中确定出目标数据,将其作为数据获取响应发送给客户端。实现了同一会话中每次均从数据集中的已存储数据中获取数据,避免了新添加数据的干扰,达到数据去重的效果,因避免了数据缓存操作,故降低了数据去重过程对内存的消耗,且因省去了数据比较操作,故提高了服务端或客户端的性能。

本公开实施例所提供的数据处理装置可执行本公开任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。值得注意的是,上述数据处理装置的实施例中,所包括的各个模块和子模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块、子模块的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。

图5为本公开实施例提供的一种电子设备的结构示意图。如图5所示,电子设备500包括一个或多个处理器501和存储器502。

处理器501可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备500中的其他组件以执行期望的功能。

存储器502可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器501可以运行所述程序指令,以实现上文所说明的本公开实施例的数据处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如数据集、数据分界标识、会话标识等各种内容。

在一个示例中,电子设备500还可以包括:输入装置503和输出装置504,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。该输入装置503可以包括例如键盘、鼠标等等。该输出装置504可以向外部输出各种信息。该输出装置504可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图5中仅示出了该电子设备500中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备500还可以包括任何其他适当的组件。

除了上述方法和设备以外,本公开的实施例还提供一种计算机程序产品,其包括计算机程序/指令,所述计算机程序/指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据处理方法的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据处理方法的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

需要说明的是,本公开所用术语仅为了描述特定实施例,而非限制本申请范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1