一种数据缓存方法、装置、设备及存储介质制造方法及图纸

技术编号:33623509 阅读:20 留言:0更新日期:2022-06-02 00:50
本申请公开了一种数据缓存方法、装置、设备及存储介质,涉及计算机技术领域,包括:获取目标客户端针对目标数据发起的数据获取请求,当数据获取请求到达网关后,网关根据目标缓存规则判断位于本地内存的一级缓存是否命中目标数据,若命中则从一级缓存中获取目标数据并返回至目标客户端,若未命中则判断位于预设缓存中间件的二级缓存中是否存在目标数据,若存在则从二级缓存中获取目标数据并返回至目标客户端,若不存在则从业务系统中获取目标数据并返回至目标客户端。本申请通过多级缓存的方式减少了网络传输和磁盘的I/O操作,提升了客户端请求的效率、CPU资源的利用率和系统单位时间内处理的查询次数,同时能够防止缓存数据的丢失。的丢失。的丢失。

【技术实现步骤摘要】
一种数据缓存方法、装置、设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种数据缓存方法、装置、设备及存储介质。

技术介绍

[0002]在传统的体系架构中,客户端发起的请求会直接到达服务器的数据库,数据库在查到数据之后再响应给客户端。在这种体系架构下会存在因为链路过长而造成响应时间超时以及过分占用服务器资源,从而影响系统的吞吐量和稳定性。
[0003]目前,为了提高了数据的访问速度和程序性能,通常采用缓存机制将数据库中的数据预先加载到内存中,然后在访问该数据时都在内存中完成,从而减少了对数据库的访问,解决了高并发场景中数据库容易成为性能瓶颈的问题。然而,使用缓存访问数据时存在一些缺点,如在高并发场景下会出现缓存失效,造成瞬间数据库访问量增大甚至崩溃,或者由于断电时内存中的数据会被清空,因此存放在内存中的数据存在丢失的风险。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种数据缓存方法、装置、设备及存储介质,能够提升客户端请求的效率、资源使用率和系统单位时间内处理的查询次数,同时能够防止缓存数据的丢失。其具体方案如下:第一方面,本申请公开了一种数据缓存方法,应用于服务器,包括:获取目标客户端针对目标数据发起的数据获取请求;当所述数据获取请求到达所述服务器的网关后,所述网关根据预先配置的目标缓存规则判断位于本地内存的一级缓存是否命中所述目标数据;若所述一级缓存命中所述目标数据,则从所述一级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;若所述一级缓存未命中所述目标数据,则判断位于预设缓存中间件的二级缓存中是否存在所述目标数据;若所述二级缓存中存在所述目标数据,则从所述二级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;若所述二级缓存中不存在所述目标数据,则从业务系统中获取所述目标数据,并将所述目标数据返回至所述目标客户端。
[0005]可选的,所述判断位于预设缓存中间件的二级缓存中是否存在所述目标数据,包括:判断位于预设缓存中间件MongoDB的二级缓存中是否存在所述目标数据。
[0006]可选的,所述从所述二级缓存中获取所述目标数据之后,还包括:将所述目标数据写入至所述一级缓存,并创建延迟队列,以便通过所述延迟队列对所述一级缓存中的缓存数据进行数据生命周期管理。
[0007]可选的,所述从业务系统中获取所述目标数据之后,还包括:通过预定义的缓存注解并按照切面的方式将所述目标数据缓存到所述缓存中间件MongoDB中,然后在缓存完成后将所述缓存中间件MongoDB中的所述目标数据写入至所述一级缓存。
[0008]可选的,所述从所述一级缓存中获取所述目标数据,包括:通过预设的网关过滤器从所述一级缓存中获取所述目标数据。
[0009]可选的,所述获取目标客户端针对目标数据发起的数据获取请求之前,还包括:通过预设的可视化规则配置页面对所述目标客户端的目标应用进行缓存规则配置,得到所述目标缓存规则,并将所述目标缓存规则记录至目标数据库;当监测到所述网关启动时,自动从所述目标数据库中拉取所述目标缓存规则,并通过消息中间件RabbitMq将所述目标缓存规则通知到规则引擎进行规则消息的分发,再将所述目标缓存规则更新到所述服务器的本地缓存规则中。
[0010]可选的,所述数据缓存方法,还包括:通过预先安装的SpringBoot、MySQL、MongoDB、RabbitMQ和1.8版本以上的JDK的中间件实现所述服务器和所述目标客户端之间的连接和通信。
[0011]第二方面,本申请公开了一种数据缓存装置,应用于服务器,包括:请求获取模块,用于获取目标客户端针对目标数据发起的数据获取请求;第一判断模块,用于当所述数据获取请求到达所述服务器的网关后,所述网关根据预先配置的目标缓存规则判断位于本地内存的一级缓存是否命中所述目标数据;第一数据获取模块,用于如果所述一级缓存命中所述目标数据,则从所述一级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;第二判断模块,用于如果所述一级缓存未命中所述目标数据,则判断位于预设缓存中间件的二级缓存中是否存在所述目标数据;第二数据获取模块,用于如果所述二级缓存中存在所述目标数据,则从所述二级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;第三数据获取模块,用于如果所述二级缓存中不存在所述目标数据,则从业务系统中获取所述目标数据,并将所述目标数据返回至所述目标客户端。
[0012]第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的数据缓存方法。
[0013]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的数据缓存方法。
[0014]可见,本申请先获取目标客户端针对目标数据发起的数据获取请求,当所述数据获取请求到达所述服务器的网关后,所述网关根据预先配置的目标缓存规则判断位于本地内存的一级缓存是否命中所述目标数据,如果所述一级缓存命中所述目标数据,则从所述一级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端,如果所述一级缓存未命中所述目标数据,则判断位于预设缓存中间件的二级缓存中是否存在所述目标数据,如果所述二级缓存中存在所述目标数据,则从所述二级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端,如果所述二级缓存中不存在所述目标数据,则从业务系统中获取所述目标数据,并将所述目标数据返回至所述目标客户端。本申请通过多级
缓存的方式减少了网络传输和磁盘的I/O操作,从而提升了客户端请求的效率、CPU资源的利用率和系统单位时间内处理的查询次数,同时能够有效的防止缓存数据的丢失,进而提升了用户体验。
附图说明
[0015]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0016]图1为本申请公开的一种数据缓存方法流程图;图2为本申请公开的一种数据缓存装置结构示意图;图3为本申请公开的一种电子设备结构图。
具体实施方式
[0017]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0018]本申请实施例公开了一种数据缓存方法,应用于服务器,参见图1所示,该方法包括:步骤S11:获取目标客户端针对目标数据发起的数据获取请求。
[0019]本实施例中,首先需要获取与服务器对应的目标客户端(Client)在运行具体业务时针对目标数据发起的数据获取请求。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据缓存方法,其特征在于,应用于服务器,包括:获取目标客户端针对目标数据发起的数据获取请求;当所述数据获取请求到达所述服务器的网关后,所述网关根据预先配置的目标缓存规则判断位于本地内存的一级缓存是否命中所述目标数据;若所述一级缓存命中所述目标数据,则从所述一级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;若所述一级缓存未命中所述目标数据,则判断位于预设缓存中间件的二级缓存中是否存在所述目标数据;若所述二级缓存中存在所述目标数据,则从所述二级缓存中获取所述目标数据,并将所述目标数据返回至所述目标客户端;若所述二级缓存中不存在所述目标数据,则从业务系统中获取所述目标数据,并将所述目标数据返回至所述目标客户端。2.根据权利要求1所述的数据缓存方法,其特征在于,所述判断位于预设缓存中间件的二级缓存中是否存在所述目标数据,包括:判断位于预设缓存中间件MongoDB的二级缓存中是否存在所述目标数据。3.根据权利要求2所述的数据缓存方法,其特征在于,所述从所述二级缓存中获取所述目标数据之后,还包括:将所述目标数据写入至所述一级缓存,并创建延迟队列,以便通过所述延迟队列对所述一级缓存中的缓存数据进行数据生命周期管理。4.根据权利要求2所述的数据缓存方法,其特征在于,所述从业务系统中获取所述目标数据之后,还包括:通过预定义的缓存注解并按照切面的方式将所述目标数据缓存到所述缓存中间件MongoDB中,然后在缓存完成后将所述缓存中间件MongoDB中的所述目标数据写入至所述一级缓存。5.根据权利要求1所述的数据缓存方法,其特征在于,所述从所述一级缓存中获取所述目标数据,包括:通过预设的网关过滤器从所述一级缓存中获取所述目标数据。6.根据权利要求1所述的数据缓存方法,其特征在于,所述获取目标客户端针对目标数据发起的数据获取请求之前,还包括:通过预设的可视化规则配置页面对所述目标客...

【专利技术属性】
技术研发人员:黄勇陈鑫伟王明君
申请(专利权)人:四川万网鑫成信息科技有限公司
类型:发明
国别省市:

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

1