缓存管理方法、装置和电子设备与流程

文档序号:23590088发布日期:2021-01-08 14:26阅读:163来源:国知局
缓存管理方法、装置和电子设备与流程

本公开涉及数据库缓存技术领域,尤其涉及一种缓存管理方法、一种缓存管理装置和一种电子设备。



背景技术:

随着计算机系统的普及,很多企业都会采用各种相互独立的网络系统、应用系统来实现管理,但这些系统的相互独立性也为企业的整体管理设置了障碍。

ecology协同管理应用平台提供了各系统间的协同管理方案,其自身的可扩展性较强,但较强的扩展性必然导致系统的复杂性,ecology协同管理应用平台和数据库的交互非常频繁,从而后端接口性能不高,大并发场景下会导致系统稳定性问题。

当前已有方案是spring+ehcache,其可以通过spring框架中的aop(面向切面编程,aspectorientedprogramming)切面编程做拦截,对涉及到的业务点进行配置,ehcache通过反射来实现切面编程,对高并发的数据库操作进行存入缓存、清除缓存操作,从而提升系统整体性能。

但是由于涉及到的每个业务点都需要手动配置拦截,工作量较大,且需要通过java虚拟机(javavirtualmachine,jvm)反射实现切面拦截,在高并发场景下系统性能不好。



技术实现要素:

本公开实施例提供一种缓存管理方法,可以提高数据缓存系统的整体速度,且增强系统稳定性。

根据本公开实施例的第一方面,提供一种缓存管理方法,所述方法包括:

接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据;

根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。

可选地,其中,所述sql操作类型为存储操作;

所述根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作,包括:

根据所述缓存数据,解析出对应的sql操作表;

以加密sql操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述sql操作表的值,存储至java虚拟机内存中。

可选地,其中,存储至所述java虚拟机内存中的数据结构包括缓存结果、缓存sql、缓存表名以及缓存监控指标。

可选地,其中,所述sql操作类型为增加操作、删除操作或修改操作;

所述根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作,包括:

根据所述缓存数据,解析出对应的sql操作表;

将所述sql操作表标记为缓存失效。

可选地,其中,所述sql操作类型为读取操作;

所述根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作,包括:

获取所述缓存数据对应的密钥;

根据所述密钥判断对应的sql操作表是否存在且有效;

若判断结果为是,从java虚拟机内存中获取缓存结果;

若判断结果为否,从数据库中获取所述缓存结果。

可选地,其中,所述方法还包括:

通过消息同步请求向集群中的其他服务器同步所述缓存数据。

可选地,其中,所述方法还包括:

采用lru缓存机制控制缓存大小。

可选地,其中,所述方法还包括:

统计当前系统中sql查询次数、sql失效次数、sql缓存时间和缓存命中率,以对所述系统进行监控。

根据本公开实施例的第二方面,提供了一种缓存管理装置,所述装置包括:

接收模块,用于接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据;

执行模块,用于根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。

根据本公开实施例的第三方面,提供一种电子设备,包括:

处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本公开实施例的第一方面中任一项所述的方法。

根据本公开实施例的第四方面,提供处理器执行时,执行本公开实施例的第一方面中任一项所述的方法。

根据本公开实施例的方法,通过接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据;根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。根据本公开,可以提高数据缓存系统的整体速度,且增强系统稳定性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本公开实施例的缓存管理方法的示意性流程图;

图2为本公开实施例的sql缓存数据的数据结构的示意图;

图3为本公开实施例的sql缓存表的数据结构的示意图;

图4和图5为本公开实施例的缓存监控界面的示意图;

图6为本公开实施例的缓存管理装置的示意性结构图;

图7为本公开实施例的电子设备的示意性结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种缓存管理方法。具体的,如图1所示,该方法可以包括如下步骤1100~步骤1200:

步骤1100,接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据。

步骤1200,根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。

本实施例中,ecology应用层与数据库的所有数据库操作都会通过数据源执行sql操作,通过解析所有的数据库操作,进行缓存数据的存储、读取和失效处理。

在缓存数据的存储过程中,所述sql操作类型为存储操作;相应的,在执行上述步骤1200时,具体可以根据所述缓存数据,解析出对应的sql操作表;以加密sql操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述sql操作表的值,存储至java虚拟机内存中。

其中,存储至所述java虚拟机内存中的数据结构包括缓存结果、缓存sql、缓存表名以及缓存监控指标。其中,sql缓存数据的数据结构如图2所示,sql缓存表的数据结构如图3所示。

在缓存数据失效过程中,所述sql操作类型为增加操作、删除操作或修改操作;相应的,执行上述步骤1200时,具体可以根据所述缓存数据,解析出对应的sql操作表;将所述sql操作表标记为缓存失效。

在缓存数据读取过程中,所述sql操作类型为读取操作;相应的,执行上述步骤1200时,具体可以获取所述缓存数据对应的密钥;根据所述密钥判断对应的sql操作表是否存在且有效;若判断结果为是,从java虚拟机内存中获取缓存结果;若判断结果为否,从数据库中获取所述缓存结果。

其中,sql解析机制例如是采用druid高效解析sql功能和sql数据结构。本实施例对此不做具体限定。

可选地,本实施例中,还提供一种sql缓存截裙同步机制,即,通过消息同步请求向集群中的其他服务器同步所述缓存数据。例如,可以在http请求中承载该消息同步请求,也可以在tcp请求中承载该消息同步请求,从而实现集群环境下的缓存同步功能。

可选地,本实施例中,还提供一种缓存控制机制,即,采用lru缓存机制控制缓存大小。例如,可以通过调用concurrentlinkedhashmap-lru-1.0_jdk5实现缓存大小的控制,同时还可以提供先进先出的缓存策略。

可选地,本实施例中,还提供一种缓存监控机制,即,如图4和图5所示,可以通过采集系统中各项指标,统计当前系统中sql查询次数、sql失效次数、sql缓存时间和缓存命中率,以对所述系统进行监控。

本实施例的缓存管理方法,通过接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据;根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。根据本实施例在应用层和数据库交互层以sql解析为基础,实现了自动化缓存读取、清除处理,减少了开发维护量,同时可以提高数据缓存系统的整体速度,增强系统稳定性。

图6为本公开实施例的缓存管理装置的示意性结构图。

在本实施例中,还提供一种缓存管理装置,如图6所示,本实施例的缓存管理装置3000可以包括:接收模块3100和执行模块3200。

其中,接收模块3100,用于接收sql缓存操作请求;所述sql操作请求中至少包括sql操作类型和缓存数据。

执行模块3200,用于根据所述sql操作请求中的sql操作类型,对所述缓存数据执行对应的缓存管理操作。

可选地,所述sql操作类型为存储操作;所述执行模块3200具体可以用于根据所述缓存数据,解析出对应的sql操作表;以加密sql操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述sql操作表的值,存储至java虚拟机内存中。其中,存储至所述java虚拟机内存中的数据结构包括缓存结果、缓存sql、缓存表名以及缓存监控指标。

可选地,所述sql操作类型为增加操作、删除操作或修改操作;所述执行模块3200具体可以用于根据所述缓存数据,解析出对应的sql操作表;将所述sql操作表标记为缓存失效。

可选地,所述sql操作类型为读取操作;所述执行模块3200具体可以用于获取所述缓存数据对应的密钥;根据所述密钥判断对应的sql操作表是否存在且有效;若判断结果为是,从java虚拟机内存中获取缓存结果;若判断结果为否,从数据库中获取所述缓存结果。

进一步地,所述缓存管理装置3000还可以包括同步模块,用于通过消息同步请求向集群中的其他服务器同步所述缓存数据。

进一步地,所述缓存管理装置3000还可以包括控制模块,用于采用lru缓存机制控制缓存大小。

进一步地,所述缓存管理装置3000还可以包括统计模块,用于统计当前系统中sql查询次数、sql失效次数、sql缓存时间和缓存命中率,以对所述系统进行监控。

本实施例的缓存管理装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在本实施例中,还提供一种电子设备,该电子设备可以包括本公开装置实施例中描述的缓存管理装置3000;或者,该电子设备为图7所示的电子设备4000,包括:

处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器执行本公开任意方法实施例中描述的方法。

在电子设备根据所执行的方法实施例的实施主体,可以是服务器,也可以是终端设备。

本实施例提供一种计算机可读存储介质,该存储介质中存储有可执行指令,该可执行指令被处理器执行时,执行本公开任意方法实施例中描述的方法。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1