CN117235024A - 基于代码分析的缓存更新方法、系统、存储介质及设备 - Google Patents
基于代码分析的缓存更新方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN117235024A CN117235024A CN202311524957.1A CN202311524957A CN117235024A CN 117235024 A CN117235024 A CN 117235024A CN 202311524957 A CN202311524957 A CN 202311524957A CN 117235024 A CN117235024 A CN 117235024A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- index
- file
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000010276 construction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 9
- 238000004140 cleaning Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000009545 invasion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于代码分析的缓存更新方法、系统、存储介质及设备,涉及数据处理技术领域,该方法包括:在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新。本发明通过代码分析方式对缓存进行更新,解决了现有技术中缓存清除方式过于复杂,且缓存清除效率一般的技术问题。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于代码分析的缓存更新方法、系统、存储介质及设备。
背景技术
大型应用程序中缓存层几乎是每个应用程序提升程序效率,节约资源使用的一种手段。在微服务架构中,需要在网关统一添加缓存层时,通常只需要设置固定的缓存有效时间来更新缓存。
现有技术公开了一种缓存处理方法,该方法包括:检测预设业务逻辑执行的数据操作指令,对数据操作指令进行拦截操作;通过用于操作数据的执行语句和预置的缓存清除配置表判定当前需要删除缓存的数据表;根据用于操作数据的执行语句和当前需要删除缓存的数据表在缓存清除配置表中相应的目标配置信息,确定被操作的数据集合;调用预设缓存清除策略修改被操作的数据集合。
然而,现有技术中缓存处理方法通过拦截操作实现对缓存的更新,在实际应用过程中还存在缓存清除方式过于复杂,且缓存清除效率一般的技术问题。
发明内容
基于此,本发明的目的是提供一种基于代码分析的缓存更新方法、系统、存储介质及设备,旨在解决现有技术中还缓存清除方式过于复杂,且缓存清除效率一般的技术问题。
本发明的第一方面在于提供一种基于代码分析的缓存更新方法,所述方法包括:
在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,包括:
遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;
对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息。
根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,还包括:
根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引。
根据上述技术方案的一方面,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,还包括:
根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引。
根据上述技术方案的一方面,所述子文件包括Controller子文件、Service子文件、ServiceImpl子文件、Mapper子文件、MapperXml子文件与Entity子文件。
根据上述技术方案的一方面,当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新的步骤,包括:
当所述消息总线接收到所述数据实体名及操作内容时,根据Controller索引在所述Controller子文件中遍历收集各层代码的代码信息,从而获取与所述统一资源定位符对应的Entity信息;
并且对所述MapperXml子文件进行解析,以获取Sql数据库中含有的表名,再推导得到对应的目标Entity信息,从而确定所述缓存键;
对所述缓存键进行缓存清除操作,以实现缓存更新。
本发明的第二方面在于提供一种基于代码分析的缓存更新系统,所述系统包括:
数据获取模块,用于在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
索引构建模块,用于建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
缓存更新模块,用于当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新。
根据上述技术方案的一方面,所述索引构建模块,用于:
遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;
对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息;
还用于:
根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引;
或者,根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引。
本发明的第三方面在于提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述技术方案当中所述方法的步骤。
本发明的第四方面在于提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案当中所述方法的步骤。
与现有技术相比,采用本发明所示的基于代码分析的缓存更新方法、系统、存储介质及设备,有益效果在于:
在用户端基于统一资源定位符进行数据访问时,将首先从消息总线获取基于数据访问进行的数据操作信息,然后建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建用于查询缓存键的查询索引,当总线接收到包含数据实体名及操作内容时,根据查询索引查找对应的缓存键,并对缓存键进行缓存清除操作以实现缓存更新。采用本发明所示方法进行缓存更新,其复用性高,在同样的开发框架下,几乎无需人工开发介入大大节省了人力成本,并且开发效率高,开发人员无需在开发业务时过于关注缓存的使用状况,并且可测试性高,仅需测试静态代码工具与拦截器的代码,对业务代码无侵入。
附图说明
图1为本发明第一实施例中基于代码分析的缓存更新方法的流程示意图;
图2为本发明第三实施例中基于代码分析的缓存更新系统的结构框图;
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1,本发明的第一实施例提供了一种基于代码分析的缓存更新方法,本实施例当中所示的缓存更新方法包括步骤S10-步骤S30:
步骤S10,在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
其中,统一资源定位符(Uniform Resource Locator,缩写为URL),又叫做网页地址,是互联网上标准的资源的地址(Address)。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。该统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。
在基于URL对互联网进行数据访问时,例如登录网站或使用移动应用,将从消息总线获取基于该数据访问进行的数据操作信息。
具体而言,在获取数据操作信息时,将首先通过对Mybatis框架中Mapper.xml文件进行分析,得出一组关系,即mapper与sql片段中表的关系(或者与实体的关系),然后由于Mybatis框架支持拦截器的应用,可以通过应用拦截器从而可以定义数据库修改类型的操作的回调,在回调中,可以明确这次操作所使用的mapper,所以也就明确了该mapper对应的数据库表名(实体名称),然后将这些信息发送至总线,即将数据操作信息发送至消息总线,最后从消息总线获取该数据操作信息即可。
当然,在从消息总线获取基于数据访问进行的数据操作信息时,还需要考虑事务的情况,需要等事务提交后才能将数据操作消息发送,若中间事务产生回滚则不能发送。
步骤S20,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
在本实施例当中,首先需要说明的是,构建查询索引的目的在于查找缓存键,即在复杂的数据关系中查找到数据的缓存键,然后对该缓存键进行清除操作即可实现对缓存层的数据更新。
在构建查询索引时,首先需要建立预加载分析程序分析出来的缓存键与数据实体(数据表)的数据实体名之间的关系,从而构建索引。
其中,预加载分析程序即代码分析工具,主要包括2个部分,一个是SQL的语法分析,一个是程序语言的语法分析。其中,SQL的语法分析,主要是语法分析数据表中哪些数据会影响查询缓存;而程序语言的分析,主要是分析Http Endpoint(HTTP 端点)及上下文由关系,该Http Endpoint以及其对应的上下文构成了缓存键,而数据表的变化则是影响缓存是否有效的部分。
在本实施例当中,在建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系时,首先遍历所有待分析的源码文件,按包结构的分类以及预设的代码命名规则,将源码文件分成Controller子文件、Service子文件、ServiceImpl子文件、Mapper子文件、MapperXml子文件与Entity子文件这6类文件。
其中,Controller子文件主要用于获取URL、上下文Token,以及Service调用信息;Service子文件为统一的服务接口Controller层依赖的信息;ServiceImpl子文件是Service的实现,其中含有其他Service的引用与Mapper(DAO层)的调用;Mapper子文件为Mybatis框架对DAO层的封装,定义了数据库的操作;MapperXml子文件为Xml格式的文件,用于动态Sql的生成,同时与Mapper有直接的关联,其中含有数据库表的信息;Entity子文件为实体对象,一般用于和数据库表映射,相当于数据库表的信息,Mybatis框架中使用Entity子文件或Entity信息作为更新参数。
在本实施例当中,在将源码文件分类好之后,还将对每个文件的语法树进行提取以获取对应所需的上述信息。
步骤S30,当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新。
在本实施例当中,在生成查询索引之后,在通过总线接收到包含数据实体名及操作内容之后,将根据预先构建的查询索引查找数据库中对应的缓存键,然后对缓存键进行缓存清除操作以实现缓存的数据更新。
具体而言,数据库中Http Endpoint以及其对应的上下文构成了缓存键,通过对数据库中Http Endpoint以及其对应的上下文进行缓存清除操作,实现对缓存的更新。
与现有技术相比,采用本实施例当中所示的基于代码分析的缓存更新方法,有益效果在于:
在用户端基于统一资源定位符进行数据访问时,将首先从消息总线获取基于数据访问进行的数据操作信息,然后建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建用于查询缓存键的查询索引,当总线接收到包含数据实体名及操作内容时,根据查询索引查找对应的缓存键,并对缓存键进行缓存清除操作以实现缓存更新。采用本发明所示方法进行缓存更新,其复用性高,在同样的开发框架下,几乎无需人工开发介入大大节省了人力成本,并且开发效率高,开发人员无需在开发业务时过于关注缓存的使用状况,并且可测试性高,仅需测试静态代码工具与拦截器的代码,对业务代码无侵入。
实施例二
本发明的第二实施例同样提供了一种基于代码分析的缓存更新方法,本实施例当中所示的缓存更新方法与第一实施例当中所示的缓存更新方法基本相似,不同之处在于:
在本实施例当中,当所述消息总线接收到所述数据实体名及操作内容时,根据Controller索引在所述Controller子文件中遍历收集各层代码的代码信息,从而获取与所述统一资源定位符对应的Entity信息;
并且对所述MapperXml子文件进行解析,以获取Sql数据库中含有的表名,再推导得到对应的目标Entity信息,从而确定所述缓存键;
对所述缓存键进行缓存清除操作,以实现缓存更新。
实施例三
请参阅图2,本发明的第三实施例提供了一种基于代码分析的缓存更新系统,本实施例当中所示的缓存更新系统包括:数据获取模块10、索引构建模块20与缓存更新模块30。
数据获取模块10,用于在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
其中,统一资源定位符(Uniform Resource Locator,缩写为URL),又叫做网页地址,是互联网上标准的资源的地址(Address)。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。该统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。
在基于URL对互联网进行数据访问时,例如登录网站或使用移动应用,将从消息总线获取基于该数据访问进行的数据操作信息。
具体而言,在获取数据操作信息时,将首先通过对Mybatis框架中Mapper.xml文件进行分析,得出一组关系,即mapper与sql片段中表的关系(或者与实体的关系),然后由于Mybatis框架支持拦截器的应用,可以通过应用拦截器从而可以定义数据库修改类型的操作的回调,在回调中,可以明确这次操作所使用的mapper,所以也就明确了该mapper对应的数据库表名(实体名称),然后将这些信息发送至总线,即将数据操作信息发送至消息总线,最后从消息总线获取该数据操作信息即可。
当然,在从消息总线获取基于数据访问进行的数据操作信息时,还需要考虑事务的情况,需要等事务提交后才能将数据操作消息发送,若中间事务产生回滚则不能发送。
索引构建模块20,用于建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
在本实施例当中,首先需要说明的是,构建查询索引的目的在于查找缓存键,即在复杂的数据关系中查找到数据的缓存键,然后对该缓存键进行清除操作即可实现对缓存层的数据更新。
在构建查询索引时,首先需要建立预加载分析程序分析出来的缓存键与数据实体(数据表)的数据实体名之间的关系,从而构建索引。
其中,预加载分析程序即代码分析工具,主要包括2个部分。一个是SQL的语法分析,一个是程序语言的语法分析。SQL的语法分析,主要针对的是哪些表会影响查询缓存;而程序语言的分析,主要针对的是Http Endpoint和哪些查询及上下文由关系,该HttpEndpoint以及其对应的上下文构成了缓存键,而数据表的变化则是影响缓存是否有效的部分。
在本实施例当中,在建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系时,首先遍历所有待分析的源码文件,按包结构的分类以及预设的代码命名规则,将源码文件分成Controller子文件、Service子文件、ServiceImpl子文件、Mapper子文件、MapperXml子文件与Entity子文件这6类文件。
其中,Controller子文件主要用于获取URL、上下文Token,以及Service调用信息;Service子文件为统一的服务接口Controller层依赖的信息;ServiceImpl子文件是Service的实现,其中含有其他Service的引用与Mapper(DAO层)的调用;Mapper子文件为Mybatis框架对DAO层的封装,定义了数据库的操作;MapperXml子文件为Xml格式的文件,用于动态Sql的生成,同时与Mapper有直接的关联,其中含有数据库表的信息;Entity子文件为实体对象,一般用于和数据库表映射,相当于数据库表的信息,Mybatis框架中使用Entity子文件或Entity信息作为更新参数。
在本实施例当中,在将源码文件分类好之后,还将对每个文件的语法树进行提取以获取对应所需的上述信息。
缓存更新模块30,用于当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新。
在本实施例当中,在生成查询索引之后,在通过总线接收到包含数据实体名及操作内容之后,将根据预先构建的查询索引查找数据库中对应的缓存键,然后对缓存键进行缓存清除操作以实现缓存的数据更新。
具体而言,数据库中Http Endpoint以及其对应的上下文构成了缓存键,通过对数据库中Http Endpoint以及其对应的上下文进行缓存清除操作,实现对缓存的更新。
与现有技术相比,采用本实施例当中所示的基于代码分析的缓存更新系统,有益效果在于:
在用户端基于统一资源定位符进行数据访问时,将首先从消息总线获取基于数据访问进行的数据操作信息,然后建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建用于查询缓存键的查询索引,当总线接收到包含数据实体名及操作内容时,根据查询索引查找对应的缓存键,并对缓存键进行缓存清除操作以实现缓存更新。采用本发明所示方法进行缓存更新,其复用性高,在同样的开发框架下,几乎无需人工开发介入大大节省了人力成本,并且开发效率高,开发人员无需在开发业务时过于关注缓存的使用状况,并且可测试性高,仅需测试静态代码工具与拦截器的代码,对业务代码无侵入。
实施例四
本发明的第四实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述实施例当中所述方法的步骤。
实施例五
本发明的第五实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例当中所述方法的步骤。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种基于代码分析的缓存更新方法,其特征在于,所述方法包括:
在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新;
其中,建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引的步骤,包括:
遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;
对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息;
其中,构建所述查询索引的步骤,还包括:
根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引;
或者,根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引。
2.根据权利要求1所述的基于代码分析的缓存更新方法,其特征在于,所述子文件包括Controller子文件、Service子文件、ServiceImpl子文件、Mapper子文件、MapperXml子文件与Entity子文件。
3.根据权利要求2所述的基于代码分析的缓存更新方法,其特征在于,当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新的步骤,包括:
当所述消息总线接收到所述数据实体名及操作内容时,根据Controller索引在所述Controller子文件中遍历收集各层代码的代码信息,从而获取与所述统一资源定位符对应的Entity信息;
并且对所述MapperXml子文件进行解析,以获取Sql数据库中含有的表名,再推导得到对应的目标Entity信息,从而确定所述缓存键;
对所述缓存键进行缓存清除操作,以实现缓存更新。
4.一种基于代码分析的缓存更新系统,其特征在于,所述系统包括:
数据获取模块,用于在基于统一资源定位符对互联网进行数据访问时,从消息总线获取基于所述数据访问进行的数据操作信息;
索引构建模块,用于建立预先分析得到的缓存键与数据实体的数据实体名之间的操作关系,构建查询索引;
缓存更新模块,用于当所述消息总线接收到包含所述数据实体名及操作内容时,根据所述查询索引查找对应的缓存键,并对所述缓存键进行缓存清除操作以实现缓存更新;
所述索引构建模块,具体用于:
遍历待分析的源码文件,按照包结构分类以及预设的代码命名规则,将所述源码文件分类成多个子文件;
对每个子文件的语法树进行信息提取,以提取每个子文件中的文件信息;
还用于:
根据所述子文件的分类结果与类名组成的哈希索引,构建用于查询所述子文件中文件信息的查询索引;
或者,根据所述子文件的类名与方法签名,构建用于查询调用链的图索引,得到查询索引。
5.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-3任意一项所述方法的步骤。
6.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-3任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311524957.1A CN117235024B (zh) | 2023-11-16 | 2023-11-16 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311524957.1A CN117235024B (zh) | 2023-11-16 | 2023-11-16 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117235024A true CN117235024A (zh) | 2023-12-15 |
CN117235024B CN117235024B (zh) | 2024-01-26 |
Family
ID=89086645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311524957.1A Active CN117235024B (zh) | 2023-11-16 | 2023-11-16 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235024B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
CN113868217A (zh) * | 2021-09-30 | 2021-12-31 | 上海银江智慧智能化技术有限公司 | 一种多元传感器数据的统一存储与查询方法及系统 |
CN114356921A (zh) * | 2021-12-28 | 2022-04-15 | 中国农业银行股份有限公司 | 数据处理方法、装置、服务器及存储介质 |
JP2022089629A (ja) * | 2020-12-04 | 2022-06-16 | 株式会社日立製作所 | データ処理システム及びキャッシュ更新制御方法 |
CN114817320A (zh) * | 2022-02-24 | 2022-07-29 | 网易(杭州)网络有限公司 | 一种缓存处理方法和装置 |
CN115145879A (zh) * | 2021-03-30 | 2022-10-04 | 贵州白山云科技股份有限公司 | 一种数据处理方法、装置、介质及设备 |
KR102476620B1 (ko) * | 2021-09-30 | 2022-12-09 | 장희창 | 캐시 자동제어 시스템 |
WO2023272918A1 (zh) * | 2021-07-02 | 2023-01-05 | 厦门雅基软件有限公司 | 一种缓存空间管理方法、装置、电子设备和存储介质 |
CN116701452A (zh) * | 2022-02-25 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、相关设备、存储介质及程序产品 |
CN116795872A (zh) * | 2022-03-15 | 2023-09-22 | 深圳市酷开网络科技股份有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
-
2023
- 2023-11-16 CN CN202311524957.1A patent/CN117235024B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
JP2022089629A (ja) * | 2020-12-04 | 2022-06-16 | 株式会社日立製作所 | データ処理システム及びキャッシュ更新制御方法 |
CN115145879A (zh) * | 2021-03-30 | 2022-10-04 | 贵州白山云科技股份有限公司 | 一种数据处理方法、装置、介质及设备 |
WO2023272918A1 (zh) * | 2021-07-02 | 2023-01-05 | 厦门雅基软件有限公司 | 一种缓存空间管理方法、装置、电子设备和存储介质 |
CN113868217A (zh) * | 2021-09-30 | 2021-12-31 | 上海银江智慧智能化技术有限公司 | 一种多元传感器数据的统一存储与查询方法及系统 |
KR102476620B1 (ko) * | 2021-09-30 | 2022-12-09 | 장희창 | 캐시 자동제어 시스템 |
CN114356921A (zh) * | 2021-12-28 | 2022-04-15 | 中国农业银行股份有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN114817320A (zh) * | 2022-02-24 | 2022-07-29 | 网易(杭州)网络有限公司 | 一种缓存处理方法和装置 |
CN116701452A (zh) * | 2022-02-25 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、相关设备、存储介质及程序产品 |
CN116795872A (zh) * | 2022-03-15 | 2023-09-22 | 深圳市酷开网络科技股份有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
叶青: "论缓存更新策略", 福建电脑, no. 1, pages 161 * |
Also Published As
Publication number | Publication date |
---|---|
CN117235024B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277643B (zh) | 一种http链路跟踪记录方法及系统 | |
JP4716709B2 (ja) | 構造化文書処理装置、構造化文書処理方法、及びプログラム | |
US20090222426A1 (en) | Computer-Implemented System And Method For Analyzing Search Queries | |
CN110430188B (zh) | 一种快速url过滤方法及装置 | |
CN101042694A (zh) | 在浏览网页时访问父页面的方法 | |
JP2004164623A (ja) | 表示データ生成装置、表示データ生成システム、表示データ生成方法、表示データ生成プログラム及び記録媒体 | |
CN113905275B (zh) | 一种网页过滤方法及智能设备 | |
CN113360519A (zh) | 数据处理方法、装置、设备和存储介质 | |
US9053207B2 (en) | Adaptive query expression builder for an on-demand data service | |
CN111881394A (zh) | 一种应用中间层的请求处理方法及系统 | |
US20080162444A1 (en) | System and method for monitoring and providing patent information automatically | |
CN117235024B (zh) | 基于代码分析的缓存更新方法、系统、存储介质及设备 | |
CN116578585B (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113938464A (zh) | 一种请求访问方法及终端 | |
US6735594B1 (en) | Transparent parameter marker support for a relational database over a network | |
US20230297355A1 (en) | Method and system for performing program transformations for precise analysis of enterprise applications | |
CN117076491A (zh) | 一种数据处理方法、存储介质与设备 | |
CN110704041A (zh) | 软件开发方法及装置 | |
CN112015910B (zh) | 域名知识库的生成方法、装置、计算机设备及存储介质 | |
CN110737813B (zh) | 一种提高爬虫效率的方法、设备及介质 | |
CN113704659A (zh) | 一种设备终端访问标记方法和系统 | |
CN106547531A (zh) | 基于php的应用性能管理方法及其模块 | |
CN112039869A (zh) | 一种网络访问关系的建立方法、装置、存储介质及设备 | |
CN115129754A (zh) | 一种数据库的数据处理方法、存储介质及设备 | |
CN112671747B (zh) | 境外恶意url的统计方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |