基于代码分析的缓存更新方法技术

技术编号:39799718 阅读:5 留言:0更新日期:2023-12-22 02:30
本发明专利技术提供了一种基于代码分析的缓存更新方法

【技术实现步骤摘要】
基于代码分析的缓存更新方法、系统、存储介质及设备


[0001]本专利技术涉及数据处理
,特别涉及一种基于代码分析的缓存更新方法

系统

存储介质及设备


技术介绍

[0002]大型应用程序中缓存层几乎是每个应用程序提升程序效率,节约资源使用的一种手段

在微服务架构中,需要在网关统一添加缓存层时,通常只需要设置固定的缓存有效时间来更新缓存

[0003]现有技术公开了一种缓存处理方法,该方法包括:检测预设业务逻辑执行的数据操作指令,对数据操作指令进行拦截操作;通过用于操作数据的执行语句和预置的缓存清除配置表判定当前需要删除缓存的数据表;根据用于操作数据的执行语句和当前需要删除缓存的数据表在缓存清除配置表中相应的目标配置信息,确定被操作的数据集合;调用预设缓存清除策略修改被操作的数据集合

[0004]然而,现有技术中缓存处理方法通过拦截操作实现对缓存的更新,在实际应用过程中还存在缓存清除方式过于复杂,且缓存清除效率一般的技术问题


技术实现思路

[0005]基于此,本专利技术的目的是提供一种基于代码分析的缓存更新方法

系统

存储介质及设备,旨在解决现有技术中还缓存清除方式过于复杂,且缓存清除效率一般的技术问题

[0006]本专利技术的第一方面在于提供一种基于代码分析的缓存更新方法,所述方法包括:在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新

[0007]本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到

[0008]根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,包括:遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息

[0009]根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,还包括:根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中
文件信息的查询索引

[0010]根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,还包括:根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引

[0011]根据上述技术方案的一方面,所述子文件包括
Controller
子文件
、Service
子文件
、ServiceImpl
子文件
、Mapper
子文件
、MapperXml
子文件与
Entity
子文件

[0012]根据上述技术方案的一方面,当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新的步骤,包括:当所述消息总线接收到所述数据实体名及操作内容时,根据
Controller
索引在所述
Controller
子文件中遍历收集各层代码的代码信息,从而获取与所述统一资源定位符对应的
Entity
信息;并且对所述
MapperXml
子文件进行解析,以获取
Sql
数据库中含有的表名,再推导得到对应的目标
Entity
信息,从而确定所述缓存键;对所述缓存键进行缓存清除操作,以实现缓存更新

[0013]本专利技术的第二方面在于提供一种基于代码分析的缓存更新系统,所述系统包括:数据获取模块,用于在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;索引构建模块,用于建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;缓存更新模块,用于当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新

[0014]根据上述技术方案的一方面,所述索引构建模块,用于:遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息;还用于:根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引;或者,根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引

[0015]本专利技术的第三方面在于提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述技术方案当中所述方法的步骤

[0016]本专利技术的第四方面在于提供一种计算机设备,包括存储器

处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案当中所述方法的步骤

[0017]与现有技术相比,采用本专利技术所示的基于代码分析的缓存更新方法

系统

存储介
质及设备,有益效果在于:在用户端基于统一资源定位符进行数据访问时,将首先从消息总线获取基于数据访问进行的数据操作信息,然后建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建用于查询缓存键的查询索引,当总线接收到包含数据实体名及操作内容时,根据查询索引查找对应的缓存键,并对缓存键进行缓存清除操作以实现缓存更新

采用本专利技术所示方法进行缓存更新,其复用性高,在同样的开发框架下,几乎无需人工开发介入大大节省了人力成本,并且开发效率高,开发人员无需在开发业务时过于关注缓存的使用状况,并且可测试性高,仅需测试静态代码工具与拦截器的代码,对业务代码无侵入

附图说明
[0018]图1为本专利技术第一实施例中基于代码分析的缓存更新方法的流程示意图;图2为本专利技术第三实施例中基于代码分析的缓存更新系统的结构框图;如下具体实施方式将结合上述附图进一步说明本专利技术

具体实施方式
[0019]为了便于理解本专利技术,下面将参照相关附图对本专利技术进行更全面的描述

附图中给出了本专利技术的若干实施例

但是,本专利技术可以以许多本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于代码分析的缓存更新方法,其特征在于,所述方法包括:在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新;其中,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,包括:遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息;其中,构建所述查询索引的步骤,还包括:根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引;或者,根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引
。2.
根据权利要求1所述的基于代码分析的缓存更新方法,其特征在于,所述子文件包括
Controller
子文件
、Service
子文件
、ServiceImpl
子文件
、Mapper
子文件
、MapperXml
子文件与
Entity
子文件
。3.
根据权利要求2所述的基于代码分析的缓存更新方法,其特征在于,当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新的步骤,包括:当所述消息总线接收到所述数据实体名及操作内容时,根据
Controller
索引在所述
Contro...

【专利技术属性】
技术研发人员:何镝秦自立邱理李志鹏诸健文
申请(专利权)人:江西国泰利民信息科技有限公司
类型:发明
国别省市:

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

1