技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种接口数据预加载方法、产品、装置、设备及介质与流程  >  正文

一种接口数据预加载方法、产品、装置、设备及介质与流程

  • 国知局
  • 2024-07-31 23:10:14

本技术涉及数据缓存,特别涉及一种接口数据预加载方法、产品、装置、设备及介质。

背景技术:

1、在当前的web应用程序中,数据缓存技术作为一种提高数据查询效率的解决方案得到了广泛的应用。为了提高接口数据的查询效率,尤其是当数据源具有较高的响应时间时,通常会采用数据缓存技术,将需要查询的数据,提前从数据源(如数据库、数据文件、第三方接口等)中查询,并将查询到的数据放入应用缓存或第三方缓存组件(如redis等)中,以避免在接收到数据请求时,数据源响应时间较长带来的数据请求迟钝问题,从而提高了应用系统的使用体验。

2、然而,针对存在大量接口数据请求和复杂业务系统的场景,目前的缓存技术存在以下缺点:在将待缓存数据加载至缓存之前,需要先确定出待加载数据,这需要根据业务情况进行判断和分类,提前分析出热门数据,然后通过手动加载、定时任务、延迟加载等方式将分析出的热门数据加载至缓存中,从而达到数据预加载的目的,但由于待缓存数据与业务强相关,因此需要拥有丰富的先验业务逻辑知识才能准确的确定出待加载的缓存数据,并需要对业务数据进行大量分析;并且,预加载的数据过多,导致内存吃紧,例如,在对待缓存数据进行加载时,定时加载的方式会导致同时加载的缓存数据较多,并且,没有考虑加载的数据是否真的会发生数据请求,从而导致无用数据占用了过多的缓存空间,另外,当加载数据较多时,会占用较大的服务器内存,导致了内存的浪费,进而导致应用程序存在崩溃的风险,并且定时查询还带来了较高的性能消耗。

技术实现思路

1、有鉴于此,本技术的目的在于提供一种接口数据预加载方法、产品、装置、设备及介质,能够将数据缓存的加载与业务数据进行了解耦,无需预先对大量的业务数据进行人工分析,从而节省了人力成本和时间成本,并避免加载过多的无用数据,从而节省了缓存空间,提高了缓存数据的命中率,降低了接口请求的响应时间,同时,避免了加载过多数据对内存资源的消耗。其具体方案如下:

2、第一方面,本技术公开了一种接口数据预加载方法,包括:

3、当接收到接口请求时,将当前接口请求与预先创建的接口数据预测匹配库中的多个高频连续接口项链路进行匹配;所述高频连续接口项链路为按照接收时间顺序分别对高频连续接口项集中的历史接口请求进行连接后得到的链路,所述高频连续接口项集为利用fp增长算法对采集到的历史接口请求进行分析后得到的高频接口项集中的至少两个且时间连续的接口项集,所述高频接口项集为接口项集出现频次大于第一预设阈值的接口项集;

4、若匹配成功,则从匹配成功的所述高频连续接口项链路中获取与所述当前接口请求连接的后续接口项;

5、将所述后续接口项对应的响应数据加载至缓存中,以便在接收到新接口请求时,直接从所述缓存中获取与所述新接口请求对应的目标响应数据。

6、可选的,所述接口数据预加载方法,还包括:

7、采集预设时间范围内接收到的历史接口请求;

8、对所述历史接口请求进行划分,得到多个持续接口项集,并将多个所述持续接口项集记录至预设数据库中;

9、利用fp增长算法对所述预设数据库进行分析,以分别计算所述预设数据库中各所述持续接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述持续接口项集判定为高频接口项集,并从所述高频接口项集中确定出至少两个且时间连续的接口项集,得到高频连续接口项集;

10、按照接收时间顺序分别对所述高频连续接口项集中的历史接口请求进行连接,得到多个高频连续接口项链路,并基于多个所述高频连续接口项链路创建接口数据预测匹配库。

11、可选的,所述对所述历史接口请求进行划分,得到多个持续接口项集,包括:

12、按照接收时间顺序对所述历史接口请求进行排序,得到排序后接口请求;

13、依次判断所述排序后接口请求中相邻的两个所述历史接口请求是否位于预设时间间隔内;所述预设时间间隔大于预设平均接口请求响应时间;

14、若相邻的两个所述历史接口请求位于所述预设时间间隔内,则将相邻的两个所述历史接口请求划分为同一接口项集,得到多个持续接口项集。

15、可选的,所述接口数据预加载方法,还包括:

16、按照接收时间顺序将所述当前接口请求记录至所述预设数据库中。

17、可选的,所述按照接收时间顺序将所述当前接口请求记录至所述预设数据库中,包括:

18、获取所述当前接口请求与上次接口请求的时间间隔,得到目标时间间隔;

19、判断所述目标时间间隔是否超过所述预设时间间隔;

20、若所述目标时间间隔未超过所述预设时间间隔,则按照接收时间顺序将所述当前接口请求记录至所述预设数据库中与所述当前接口请求的接收时间最接近的持续接口项集内。

21、可选的,所述接口数据预加载方法,还包括:

22、若所述目标时间间隔超过所述预设时间间隔,则在所述预设数据库中创建新的持续接口项集,并将所述当前接口请求记录至所述新的持续接口项集中。

23、可选的,所述将所述当前接口请求记录至所述预设数据库中与所述当前接口请求的接收时间最接近的持续接口项集内,包括:

24、判断与所述当前接口请求的接收时间最接近的持续接口项集中是否存在与所述当前接口请求相同的接口请求;

25、若与所述当前接口请求的接收时间最接近的持续接口项集中不存在与所述当前接口请求相同的接口请求,则将所述当前接口请求记录至所述预设数据库中与所述当前接口请求的接收时间最接近的持续接口项集内。

26、可选的,所述利用fp增长算法对所述预设数据库进行分析,以分别计算所述预设数据库中各所述持续接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述持续接口项集判定为高频接口项集,并从所述高频接口项集中确定出至少两个且时间连续的接口项集,得到高频连续接口项集,包括:

27、分别统计所述预设数据库中各所述历史接口请求在多个所述持续接口项集中出现的频次,得到各所述历史接口请求对应的目标频次;

28、按照频次从大到小的顺序对各所述历史接口请求进行排序,并基于排序后接口请求及对应的所述目标频次创建接口项频次统计表;

29、按照所述接口项频次统计表中所述排序后接口请求的顺序对所述预设数据库中各所述持续接口项集内的历史接口请求进行排序,得到排序后接口项集;

30、在所述接口项频次统计表的基础上,基于所述排序后接口项集构建fp树,得到目标fp树;

31、对所述目标fp树进行分析,以查找所述目标fp树中多个所述排序后接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述排序后接口项集判定为高频接口项集,并从所述高频接口项集中确定出至少两个且时间连续的接口项集,得到高频连续接口项集。

32、可选的,所述在所述接口项频次统计表的基础上,基于所述排序后接口项集构建fp树,得到目标fp树,包括:

33、剔除所述接口项频次统计表和所述排序后接口项集中所述目标频次小于第二预设阈值的历史接口请求及对应的所述目标频次,得到剔除后频次统计表和剔除后接口项集;

34、在所述剔除后频次统计表的基础上,基于所述剔除后接口项集构建fp树,得到目标fp树。

35、可选的,所述在所述剔除后频次统计表的基础上,基于所述剔除后接口项集构建fp树,得到目标fp树,包括:

36、在所述剔除后频次统计表的基础上,按照频次从大到小的顺序分别将各所述剔除后接口项集中的各历史接口请求插入至fp树中,得到目标fp树。

37、可选的,在构建所述目标fp树的过程中,还包括:

38、在插入过程中判断当前插入的不同节点之间是否具有相同父节点;

39、若具有相同父节点,则对相应的所述父节点的计数值加1;

40、若不具有相同父节点,则判断当前插入的节点是否为新节点;

41、若为新节点,则将所述剔除后频次统计表中对应的所述历史接口请求作为节点指针指向所述新节点;

42、若为旧节点,则将前一个相同接口项节点的节点指针指向所述旧节点。

43、可选的,所述对所述目标fp树进行分析,以查找所述目标fp树中多个所述排序后接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述排序后接口项集判定为高频接口项集,并从所述高频接口项集中确定出至少两个且时间连续的接口项集,得到高频连续接口项集,包括:

44、按照所述剔除后频次统计表中频次从低至高的顺序对所述目标fp树进行倒序分析,以查找所述目标fp树中多个所述剔除后接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述剔除后接口项集判定为高频接口项集,并从所述高频接口项集中确定出至少两个且时间连续的接口项集,得到高频连续接口项集。

45、可选的,所述查找所述目标fp树中多个所述剔除后接口项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述剔除后接口项集判定为高频接口项集,包括:

46、基于所述节点指针,分别从所述目标fp树中查找包含所述剔除后频次统计表中各历史接口请求的分支树,得到fp子树;

47、根据节点下的叶子节点的数量和对所述fp子树中各节点的计数值进行重新设置,得到节点频繁子树;

48、基于所述节点频繁子树的各个分支构建持续接口项集,得到新持续项集;

49、对所述新持续项集中的历史接口请求进行统计,得到新频次统计表,并在所述新频次统计表的基础上,基于所述新持续项集构建fp树,得到新fp树;

50、查找所述新fp树中所述新持续项集的接口项集出现频次,并判断所述接口项集出现频次是否大于第一预设阈值,若是则将相应的所述新持续项集判定为高频接口项集。

51、可选的,所述基于多个所述高频连续接口项链路创建接口数据预测匹配库,包括:

52、按照频次从高至低的顺序对多个所述高频连续接口项链路进行划分,得到多个划分后接口项链路;

53、基于多个所述划分后接口项链路创建接口数据预测匹配库。

54、可选的,所述基于多个所述划分后接口项链路创建接口数据预测匹配库,包括:

55、判断各所述划分后接口项链路的长度是否超过预设长度;

56、若所述划分后接口项链路的长度超过所述预设长度,则对所述划分后接口项链路中超过所述预设长度的部分进行删除,得到删除后接口项链路,并基于所述删除后接口项链路及未超过所述预设长度的所述划分后接口项链路创建接口数据预测匹配库。

57、可选的,所述接口数据预加载方法,还包括:

58、按照预设的定时清除周期对所述缓存中的数据进行清除;所述定时清除周期大于所述预设时间间隔。

59、第二方面,本技术公开了一种接口数据预加载装置,包括:

60、匹配模块,用于当接收到接口请求时,将当前接口请求与预先创建的接口数据预测匹配库中的多个高频连续接口项链路进行匹配;所述高频连续接口项链路为按照接收时间顺序分别对高频连续接口项集中的历史接口请求进行连接后得到的链路,所述高频连续接口项集为利用fp增长算法对采集到的历史接口请求进行分析后得到的接口项集出现频次大于第一预设阈值的高频接口项集中的至少两个且时间连续的接口项集;

61、获取模块,用于若匹配成功,则从匹配成功的所述高频连续接口项链路中获取与所述当前接口请求连接的后续接口项;

62、预加载模块,用于将所述后续接口项对应的响应数据加载至缓存中,以便在接收到新接口请求时,直接从所述缓存中获取与所述新接口请求对应的目标响应数据。

63、第三方面,本技术公开了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现前述的接口数据预加载方法。

64、第四方面,本技术公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的接口数据预加载方法。

65、第五方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的接口数据预加载方法。

66、可见,本技术当接收到接口请求时,将当前接口请求与预先创建的接口数据预测匹配库中的多个高频连续接口项链路进行匹配;所述高频连续接口项链路为按照接收时间顺序分别对高频连续接口项集中的历史接口请求进行连接后得到的链路,所述高频连续接口项集为利用fp增长算法对采集到的历史接口请求进行分析后得到的高频接口项集中的至少两个且时间连续的接口项集,所述高频接口项集为接口项集出现频次大于第一预设阈值的接口项集;若匹配成功,则从匹配成功的所述高频连续接口项链路中获取与所述当前接口请求连接的后续接口项;将所述后续接口项对应的响应数据加载至缓存中,以便在接收到新接口请求时,直接从所述缓存中获取与所述新接口请求对应的目标响应数据。本技术预先创建了一个包含多个高频连续接口项链路的接口数据预测匹配库,其中,高频连续接口项链路是按照请求接收时间的先后顺序对高频连续接口项集中的历史接口请求进行连接后得到的链路,也即,该高频连续接口项链路是按照接收时间顺序排序的链路,并且,高频连续接口项集是利用fp增长算法对采集到的大量历史接口请求进行分析后得到的出现频次大于第一预设阈值的高频接口项集中的至少两个且时间连续的接口项集,这样一来,当接收到接口请求时,可以直接将当前接口请求与预先创建的接口数据预测匹配库中的多个高频连续接口项链路进行匹配,若匹配成功,则从匹配成功的高频连续接口项链路中获取与当前接口请求连接的后续接口项,然后将后续接口项对应的响应数据加载至缓存中,从而在接收到新接口请求时,直接从缓存中获取与新接口请求对应的目标响应数据。通过fp增长算法掘出大量历史接口请求数据中的高频连续接口项集,并基于该高频连续接口项集预测与当前接口请求强相关的后续接口请求,从而将与后续接口请求对应的响应数据加载至缓存中,以便在接收到新接口请求时直接获取相应的响应数据,可见,本技术将数据缓存的加载与业务数据进行了解耦,因此无需预先对大量的业务数据进行人工分析,从而节省了人力成本和时间成本,并且,本技术中预加载的数据是利用fp增长算法得到的高频连续接口项链路中的后续接口项对应的数据,即预加载的数据是与当前接口请求强关联的经过数据挖掘后得到的数据,也即,考虑了预加载的数据为是否真的会发生数据请求的响应数据,因此能够避免加载过多的无用数据,从而节省了缓存空间,并提高了缓存数据的命中率,降低了接口请求的响应时间,同时,避免了加载过多数据对内存资源的消耗。

本文地址:https://www.jishuxx.com/zhuanli/20240730/196206.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。