一种实现缓存到期失效、自动刷新的方法

文档序号:1963725 发布日期:2021-12-14 浏览:16次 >En<

阅读说明:本技术 一种实现缓存到期失效、自动刷新的方法 (Method for realizing expiration and invalidation and automatic refreshing of cache ) 是由 李智超 于 2021-07-27 设计创作,主要内容包括:本发明涉及计算机技术领域,具体为一种实现缓存到期失效、自动刷新的方法,包括以下步骤:步骤一,缓存通用配置,应用程序将数据存储的需求写入数据库;步骤二,注解配置,标记自动刷新时间或数据过期时间;步骤三,缓存处理器拦截,系统运行时缓存处理器拦截设置缓存过期时间并标记是否需要自动刷新;步骤四,定时任务刷新缓存,定时任务时间一到,拉取携带刷新参数的缓存,本发明本发明提供了一套通过缓存注解配置、处理器拦截,定时任务刷新,实现方法结果缓存过期和自动更新的技术方案,支持设置过期时间,可以更灵活地根据业务运用缓存;可自动刷新缓存,避免缓存的时效性不足。(The invention relates to the technical field of computers, in particular to a method for realizing expiration and invalidation and automatic refreshing of a cache, which comprises the following steps: caching general configuration, wherein an application program writes the requirement of data storage into a database; annotating configuration, marking automatic refreshing time or data expiration time; step three, the cache processor intercepts, and when the system runs, the cache processor intercepts and sets the cache expiration time and marks whether automatic refreshing is needed; the invention provides a technical scheme for realizing the overdue and automatic update of the result cache of the method by buffer annotation configuration, processor interception, timed task refreshing and the like, supports the setting of the overdue time and can more flexibly apply the cache according to the service; the cache can be automatically refreshed, and the insufficient timeliness of the cache is avoided.)

一种实现缓存到期失效、自动刷新的方法

技术领域

本发明涉及计算机技术领域,具体为一种实现缓存到期失效、自动刷新的方法。

背景技术

Spring缓存注解不支持设置过期时间、定时刷新缓存,而业务上,有时候需要指定部分缓存有过期时间,避免不需要缓存后由于缓存的存在影响业务或占据空间;手动更新缓存也不方便,无法及时同步最新请求结果,本技术作为Spring缓存注解的扩展而设计。

现有技术中的缺陷:

(1)新缓存注解只支持redis数据库。

(2)缓存自动刷新时间只能统一设置,不能单独设置。

(3)如果设置了缓存过期时间,且缓存刚好在刷新时间之前失效,那这段时间差里无缓存。

(4)刷新缓存前,会先清除原缓存,再调用被注解的方法得到结果并重新缓存,在这段时间差里如果有外部请求,会出现无缓存的情况。

发明内容

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种方便设置缓存过期时间、定时刷新缓存的实现缓存到期失效、自动刷新的方法。

(二)技术方案

为实现上述目的,本发明提供如下技术方案:一种实现缓存到期失效、自动刷新的方法,其特征在于,包括以下步骤;

步骤一,缓存通用配置,应用程序将数据存储的需求写入数据库;

步骤二,注解配置,标记自动刷新时间或数据过期时间;

步骤三,缓存处理器拦截,系统运行时缓存处理器拦截设置缓存过期时间并标记是否需要自动刷新;

步骤四,定时任务刷新缓存,定时任务时间一到,拉取携带刷新参数的缓存。

为了方便调节自动刷新时间,本发明改进有,所述步骤一中,缓存通用配置包括是否开启自动刷新、自动刷新任务的周期时间以及任务线程池,所述任务线程池用于配置线程数量和队列大小。

为了提高本发明的使用效果,本发明改进有,包括用户、服务器以及数据库,所述用户用于向服务器发送请求指令,所述服务器用于向数据库发送数据缓存指令或数据过期指令。

为了提高数据缓存效果,本发明改进有,所述数据库包括缓存数据库以及redis数据库,所述缓存数据库内设有缓存队列,所述Redis数据库内设有ttl缓存。

为了缩短更新缓存的线路,本发明改进有,所述服务器内设有数据分配程序,当发现redis数据库进行数据的写入、变更或删除的操作时,对操作后的数据写入到缓存数据库内,由缓存队列对缓存数据排序。

为了提高数据缓存的效率,本发明改进有,所述数据分配程序内设有数据监控程序,若监控到某个数据的读取变得非常频繁,则将此数据放到缓存数据库中的数据队列前面,缓存数据队列对于读取越频繁的数据,就会被将其调度到越靠前的数据队列。

为了实现远程数据缓存,本发明改进有,包括移动端,所述移动端上设有用户登录系统、数据传输系统、数据接收系统以及互联网系统,所述用户通过用户登录系统在移动端上登录,所述移动端通过互联网系统向服务器发送请求指令,移动端通过数据传输系统以及数据接收系统向服务器发送缓存数据,服务器用于向数据库发送数据缓存指令或数据过期指令,过期的数据信息通过服务器反馈至移动端。

(三)有益效果

与现有技术相比,本发明提供了一种实现缓存到期失效、自动刷新的方法,具备以下有益效果:

本发明本发明提供了一套通过缓存注解配置、处理器拦截,定时任务刷新,实现方法结果缓存过期和自动更新的技术方案,支持设置过期时间,可以更灵活地根据业务运用缓存;可自动刷新缓存,避免缓存的时效性不足。

附图说明

图1为本发明结构示意图;

图2为定时任务的连接图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-2,本发明为一种实现缓存到期失效、自动刷新的方法,包括以下步骤;

步骤一,缓存通用配置,应用程序将数据存储的需求写入数据库;

步骤二,注解配置,标记自动刷新时间或数据过期时间;

步骤三,缓存处理器拦截,系统运行时缓存处理器拦截设置缓存过期时间并标记是否需要自动刷新;

步骤四,定时任务刷新缓存,定时任务时间一到,拉取携带刷新参数的缓存。

本实施例中,所述步骤一中,缓存通用配置包括是否开启自动刷新、自动刷新任务的周期时间以及任务线程池,所述任务线程池用于配置线程数量和队列大小,通过任务线程池对不同的数据任务分类配置,对缓存的数据排序,对不同分类的数据任务或排序的数据任务单独设置自动刷新时间。

本实施例中,包括用户、服务器以及数据库,所述用户用于向服务器发送请求指令,所述服务器用于向数据库发送数据缓存指令或数据过期指令,通过设置多个操作单元,对数据的缓存或自动刷新进行分级,并对数据进行监控,确保数据储存或缓存更加安全。

本实施例中,所述数据库包括缓存数据库以及redis数据库,所述缓存数据库内设有缓存队列,所述redis数据库内设有ttl缓存,数据通过redis 数据库存储后,服务器检测缓存数据库是否存在缓存数据,避免重复数据储存,同时防止缓存存在异常的情况,影响用户体验。

本实施例中,所述服务器内设有数据分配程序,当发现redis数据库进行数据的写入、变更或删除的操作时,对操作后的数据写入到缓存数据库内,由缓存队列对缓存数据排序,缓存数据经过排序后若发现需求的数据时则立马将数据反馈至用户,若无,则读取下一个数据队列,使得数据的缓存更新更可靠以及更快。

本实施例中,所述数据分配程序内设有数据监控程序,若监控到某个数据的读取变得非常频繁,则将此数据放到缓存数据库中的数据队列前面,缓存数据队列对于读取越频繁的数据,就会被将其调度到越靠前的数据队列,频繁的次数可自行定义,例如1秒钟内读取了100次,但具体情况并不限制于100次,频繁次数的定义需根据实际操作而定,既而提高数据缓存的效率。

本实施例中,包括移动端,所述移动端上设有用户登录系统、数据传输系统、数据接收系统以及互联网系统,所述用户通过用户登录系统在移动端上登录,所述移动端通过互联网系统向服务器发送请求指令,移动端通过数据传输系统以及数据接收系统向服务器发送缓存数据,服务器用于向数据库发送数据缓存指令或数据过期指令,过期的数据信息通过服务器反馈至移动端,方便用户及时收到数据过期信息,同时实现远程对数据缓存。

综上所述,该实现缓存到期失效、自动刷新的方法,在使用时,如图1 所示,用户向服务器发送请求指令,服务器获取redis缓存,服务器将redis缓存分配至缓存数据库备份,当redis数据缓存不存在时服务器请求缓存数据库查询备份,服务器设置redis数据库缓存数据的过期时间或自动更新时间,通过ttl缓存将redis数据库中的过期数据自动清除,本发明解决了存储双写的问题,使得应用程序更加容易编写、维护以及扩展;缩短更新缓存的线路,使得数据的缓存更新更可靠以及更快,提高用户的体验性,保护了持久存储数据库的安,本发明支持设置过期时间,可以更灵活地根据业务运用缓存;可自动刷新缓存,避免缓存的时效性不足。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!