数据处理方法、装置、设备、存储介质及程序产品与流程

文档序号:37834410发布日期:2024-05-07 19:09阅读:8来源:国知局
数据处理方法、装置、设备、存储介质及程序产品与流程

本技术涉及计算机,尤其涉及一种数据处理方法、装置、设备、存储介质及计算机程序产品。


背景技术:

1、在互联网应用中,对数据的读写时延要求很高,数据的读写性能直接影响用户体验。数据缓存是提高数据读写性能的主要方案。相关技术中,多采用多组内存块的形式进行数据缓存。具体地,每个内存组中包含多个大小相同且固定的内存块,不同内存组之间包括的内存块的大小不同,当需要缓存数据时,则根据待缓存数据的数据大小,从内存组中寻找内存大小大于该数据大小的空闲内存块,以将待缓存数据写入该空闲内存块。但是,由于每个内存组中的内存块都是固定大小的,存储待缓存数据时不一定能充分使用该内存块,当数据的缓存次数多后,会产生大量的内存碎片,导致缓存空间的浪费。


技术实现思路

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、本技术实施例还提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本技术实施例提供的数据处理方法。

34、本技术实施例具有以下有益效果:

35、当缓存目标数据中的待缓存子数据时,获取待缓存子数据和待缓存子数据的缓存数据大小,并获取缓存空间的待写入位置、以及目标数据对应的分配缓存空间大小。从而1)当缓存数据大小大于分配缓存空间大小时,从待写入位置起,将待缓存子数据写入缓存空间中的第一子空间,该第一子空间的大小为缓存数据大小。如此,能够避免在缓存数据时产生内存碎片;2)当缓存数据大小小于或等于分配缓存空间大小时,从待写入位置起,将待缓存子数据写入缓存空间中的第二子空间,该第二子空间的大小为分配缓存空间大小。如此,在将待缓存子数据写入具有分配缓存空间大小的分配缓存空间时,能够尽可能减少缓存数据时所产生的内存碎片。即,由于目标时长内所缓存的子数据的数据大小为目标数据大小的频率是最高的,而分配缓存空间大小是基于目标数据大小确定的,则表征目标数据中大多数的待缓存子数据的缓存数据大小低于目标数据大小,从而使得目标数据中大多数的待缓存子数据可以写入具有分配缓存空间大小的分配缓存空间,且使得该分配缓存空间的剩余内存(即所产生的内存碎片)尽可能小,实现缓存空间的合理分配,提高缓存空间的利用率,减少缓存空间的浪费。

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