一种生成缓存的方法、存储介质技术

技术编号:38133208 阅读:7 留言:0更新日期:2023-07-08 09:42
本发明专利技术公开一种生成缓存的方法、存储介质,属于数据处理技术领域。该生成缓存的方法,包括以下步骤:控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。该方法只需要接入缓存组件即可实现快速查询,而且确保了缓存和数据库数据的一致性。和数据库数据的一致性。和数据库数据的一致性。

【技术实现步骤摘要】
一种生成缓存的方法、存储介质


[0001]本专利技术涉及数据处理
,具体涉及一种生成缓存的方法、存储介质。

技术介绍

[0002]在日常开发的很多场景,由于受限于硬盘IO的性能或者自身业务系统的数据处理和获取非常耗时,当我们发现数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶颈出现,严重的时候会造成整个系统的雪崩。缓存的作用就是将这些来自不易的数据保存在内存中,当有其他线程或者客户端需要查询相同的数据资源时,直接从缓存的内存块中返回数据,这样不但可以提高系统的响应时间,同时也可以节省对这些数据的处理流程的资源消耗,整体上来说,系统性能和稳定性会有质的提升。
[0003]目前的数据处理中可能会出现缓存穿透、缓存雪崩等问题,会出现缓存和数据库数据不一致的问题。而且每次开发都需要考虑这些问题,一但出现漏洞,会导致整个系统的不可用。这样会降低开发效率、提升测试维护成本、降低系统稳定性和可用性。

技术实现思路

[0004]本专利技术的目的在于克服上述技术不足,提供一种生成缓存的方法、存储介质,解决现有技术中的缓存和数据库数据不一致的技术问题。
[0005]为达到上述技术目的,本专利技术的技术方案提供一种生成缓存的方法,包括以下步骤:
[0006]控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。
[0007]进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数。
[0008]进一步地,所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间。
[0009]进一步地,所述缓存查询请求包括缓存关键词和相关请求参数。
[0010]进一步地,还包括将生成的缓存数据写入缓存队列。
[0011]进一步地,所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
[0012]进一步地,所述线程根据缓存队列中的关键词和相关的请求参数去调用相应的生成缓存接口,若生成成功则生成刷新缓存;若生成失败则删除该关键词和相关的请求参数。
[0013]进一步地,访问率高的生成缓存接口优先生成缓存。
[0014]进一步地,所述生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。
[0015]此外,本专利技术还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成缓存的方法的步骤。
[0016]与现有技术相比,本专利技术的有益效果包括:本专利技术提出的生成缓存的方法,控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层,可以只需要接入缓存组件即可实现快速查询,而且确保了缓存和数据库数据的一致性。
附图说明
[0017]图1是本专利技术实施例1中生成缓存的方法的缓存生成和更新流程图。
具体实施方式
[0018]本具体实施方式提供了一种生成缓存的方法,包括以下步骤:
[0019]控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层;进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数;所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间;所述缓存查询请求包括缓存关键词和相关请求参数;所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
[0020]在某些实施例中,还包括将生成的缓存数据写入缓存队列。
[0021]在某些实施例中,所述线程根据缓存队列中的关键词和相关的请求参数去调用相应的生成缓存接口,若生成成功则生成刷新缓存;若生成失败则删除该关键词和相关的请求参数,进一步地,访问率高的生成缓存接口优先生成缓存。
[0022]在某些实施例中,所述生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。
[0023]本具体实施方式还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成缓存的方法的步骤。
[0024]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0025]目前的APP服务接口底层逻辑主要用来统计和查询,由于处理的数据量大,查询的流程长,响应时间达到了秒级别,为了更好的用户体验,必须实现毫秒级别的接口响应需求。
[0026]业务数据统计时间维度为T(上一个整点)和T

1(昨天)。
[0027]由于数据的统计时间不是实时的(T可以每个整点生成上一个小时的缓存,T

1的维度可以每天0点生成缓存),所以可以引入缓存来提高服务接口响应速度。
[0028]缓存的开发不增加业务开发的工作量,不侵入业务代码,不影响业务的原有查询逻辑。
[0029]缓存统一生成,统一维护。
[0030]业务代码使用缓存简单可靠。
[0031]让使用频繁的接口优先生成缓存。
[0032]多种方式触发更新缓存(定时任务生成缓存,代码调用生成缓存)。
[0033]方案分析:
[0034]如上述业务场景和实现需求,使用传统的方案难以实现,若通过使用该缓存组件内置的多线程消费队列进行缓存的更新和生成则能够实现。
[0035]具体技术方案如下:
[0036]结合图1,本实施例提出一种生成缓存的方法,包括以下步骤:
[0037]控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层;进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数;所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间,保证队列里面的缓存关键词KEY永不过期;所述缓存查询请求包括缓存关键词和相关请求参数;所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
[0038]需要说明的是,缓存接口是数据库查询的端口。
[0039]在上述实施例的基础上,本实施例还包括将生成的缓存数据写入缓存队列。
[0040]在上述实施例的基础上,本实施例中的缓存组件包括多个线程,多个线程构成线程池,通过多个所述线程处理所述缓存队列,缓存队列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成缓存的方法,其特征在于,包括以下步骤:控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。2.根据权利要求1所述的生成缓存的方法,其特征在于,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数。3.根据权利要求1所述的生成缓存的方法,其特征在于,所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间。4.根据权利要求1所述的生成缓存的方法,其特征在于,所述缓存查询请求包括缓存关键词和相关请求参数。5.根据权利要求1所述的生成缓存的方法,其特征在于,还包括将生成的缓存数据写入缓存队列。6.根据权利要求5所述的生成缓存的方法,其特征...

【专利技术属性】
技术研发人员:叶会李程
申请(专利权)人:深圳市丰宜科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1