数据缓存方法、装置、计算机设备和存储介质与流程

专利查询2天前  6


本技术涉及互联网,特别是涉及一种数据缓存方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

1、随着互联网技术的发展,互联网平台呈现多元化,比如有视频类平台、新闻类平台、社交类平台以及购物类平台等。互联网平台用于展示对应的互联网数据,提升工作与生活的便利性。

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、接收到终端发送的对目标页面的访问请求后,在数据缓存中查找目标页面上目标数据对象对应的目标缓存数据;

34、获取目标缓存数据对应的目标缓存时间戳,基于目标缓存时间戳,确定目标缓存数据的缓存时长;

35、在缓存时长和预设的数据过期时长之间满足预设条件时,向终端返回目标缓存数据,并查询目标数据对象对应的当前缓存时间戳,将目标缓存时间戳和当前缓存时间戳进行比较;

36、在目标缓存时间戳和当前缓存时间戳一致的情况下,将更新时间戳作为目标数据对象对应的当前缓存时间戳,并从远程数据库获取目标数据对象对应更新数据,将数据缓存中的目标缓存数据替换为更新数据;将更新时间戳作为更新数据对应的目标缓存时间戳。

37、第五方面,本技术还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

38、接收到终端发送的对目标页面的访问请求后,在数据缓存中查找目标页面上目标数据对象对应的目标缓存数据;

39、获取目标缓存数据对应的目标缓存时间戳,基于目标缓存时间戳,确定目标缓存数据的缓存时长;

40、在缓存时长和预设的数据过期时长之间满足预设条件时,向终端返回目标缓存数据,并查询目标数据对象对应的当前缓存时间戳,将目标缓存时间戳和当前缓存时间戳进行比较;

41、在目标缓存时间戳和当前缓存时间戳一致的情况下,将更新时间戳作为目标数据对象对应的当前缓存时间戳,并从远程数据库获取目标数据对象对应更新数据,将数据缓存中的目标缓存数据替换为更新数据;将更新时间戳作为更新数据对应的目标缓存时间戳。

42、上述数据缓存方法、装置、计算机设备、存储介质和计算机程序产品,接收到终端发送的对目标页面的访问请求后,在数据缓存中查找目标页面上目标数据对象对应的目标缓存数据;获取目标缓存数据对应的目标缓存时间戳,基于目标缓存时间戳,确定目标缓存数据的缓存时长;在缓存时长和预设的数据过期时长之间满足预设条件时,一方面,向终端返回目标缓存数据;另一方面,查询目标数据对象对应的当前缓存时间戳,将目标缓存时间戳和当前缓存时间戳进行比较;在目标缓存时间戳和当前缓存时间戳一致的情况下,将更新时间戳作为目标数据对象对应的当前缓存时间戳,并从远程数据库获取目标数据对象对应更新数据,将数据缓存中的目标缓存数据替换为更新数据;上述将数据缓存中当前缓存的目标缓存数据返回给终端,同时触发缓存更新的方式,实现了缓存数据的异步更新,和接收到访问请求后,即时从远程数据库中获取更新数据再返回给终端的方式相比,加快了访问请求的响应速度,而且,考虑到访问请求并发的情况下,会存在对于每个访问请求都要从远程数据库中获取一次更新数据的问题,上述实施例提出时间戳比较方案,只有时间戳比较结果为一致的访问请求,才从远程数据库中获取更新数据,避免了不必要的获取过程的执行,减少了对远程数据库的访问次数,降低了远程服务器的访问压力。


技术特征:

1.一种数据缓存方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述预设的数据过期时长包括:第一预设时长和第二预设时长,所述第一预设时长大于所述第二预设时长;所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述对相应的待处理缓存数据进行清除处理,包括:

7.根据权利要求5所述的方法,其特征在于,所述分别对所述数据缓存中各个待处理数据对象各自对应的待处理缓存数据的缓存时长进行检测,包括:

8.根据权利要求1所述的方法,其特征在于,所述向所述终端返回所述目标缓存数据之前,所述方法还包括:

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

10.根据权利要求9所述的方法,其特征在于,所述基于所述全局锁对象,确定所述目标数据对象对应的数据锁对象,包括:

11.根据权利要求9所述的方法,其特征在于,所述通过所述数据锁对象从远程数据库获取所述目标数据对象对应目标数据,并将所述目标数据存入所述数据缓存中,包括:

12.根据权利要求11所述的方法,其特征在于,所述将所述目标数据对象对应的数据锁对象更新为释放状态之后,所述方法还包括:

13.根据权利要求1-12任一项所述的方法,其特征在于,所述接收到终端发送的对目标页面的访问请求后,在数据缓存中查找所述目标页面上目标数据对象对应的目标缓存数据,包括:

14.一种数据缓存装置,其特征在于,所述装置包括:

15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤。

16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。

17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。


技术总结
本申请涉及一种数据缓存方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:接收到终端发送的对目标页面的访问请求后,获取目标缓存数据对应的目标缓存时间戳,基于目标缓存时间戳,确定目标缓存数据的缓存时长;在缓存时长和预设的数据过期时长之间满足预设条件时,向终端返回目标缓存数据,并查询目标数据对象对应的当前缓存时间戳,将目标缓存时间戳和当前缓存时间戳进行比较;在两者一致的情况下,将更新时间戳作为目标数据对象对应的当前缓存时间戳,并从远程数据库获取目标数据对象对应更新数据,将数据缓存中的目标缓存数据替换为更新数据;将更新时间戳作为更新数据对应的目标缓存时间戳。提升了页面访问请求的响应速度。

技术研发人员:施明磊
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:
技术公布日:2024/12/5

最新回复(0)