表维度的缓存刷新方法及系统技术方案

技术编号:32456994 阅读:12 留言:0更新日期:2022-02-26 08:37
本发明专利技术公开了表维度的缓存刷新方法及系统,属于表数据缓存刷新技术领域,要解决的技术问题为如何降低缓存刷新的开发和后期维护成本。包括如下步骤:配置目标表对应的缓存刷新实现类;将目标表的元数据配置至缓存配置表中;配置目标表对应的缓存刷新标识生成器,通过缓存标识生成器监测目标表中表数据是否有变动,并基于目标表中表数据的变动对配置表中所述目标表的DB数据更新时间戳进行更新;通过定时任务获取缓存中存放的上次缓存刷新时间戳,并基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,调用待更新目标表的缓存刷新实现类,对待更新目标表的表数据进行缓存刷新。据进行缓存刷新。据进行缓存刷新。

【技术实现步骤摘要】
表维度的缓存刷新方法及系统


[0001]本专利技术涉及表数据缓存刷新
,具体地说是表维度的缓存刷新方法及系统。

技术介绍

[0002]传统缓存刷新技术一般是db查询时将数据写入缓存(比如redis),等下次查询的时候从redis获取,如果不存在则继续查询db,db数据有更新或者删除,要相应的操作缓存,当随着系统越做越大,则对缓存增删改的地方将越来越多,若一张未接入缓存的表想要接入缓存,则需要进行大量的代码改造,反之亦然,大大增加了维护成本。
[0003]如何降低缓存刷新的开发和后期维护成本,是需要解决的技术问题。

技术实现思路

[0004]本专利技术的技术任务是针对以上不足,提供表维度的缓存刷新方法及系统,来解决如何降低缓存刷新的开发和后期维护成本的技术问题。
[0005]第一方面,本专利技术表维度的缓存刷新方法,包括如下步骤:
[0006]对于要接入缓存的目标表,配置所述目标表对应的缓存刷新实现类,所述缓存刷新实现类用于实现所述目标表表数据的缓存刷新;
[0007]对于要接入缓存的目标表,将所述目标表的元数据配置至缓存配置表中,所述元数据包括所述目标表对应的的表名、缓存刷新实现类全路径、DB数据更新时间戳、以及是否启用状态;
[0008]对于要接入缓存的目标表,配置所述目标表对应的缓存刷新标识生成器,通过所述缓存标识生成器监测目标表中表数据是否有变动,并基于目标表中表数据的变动对配置表中所述目标表的DB数据更新时间戳进行更新;
[0009]通过定时任务获取缓存中存放的上次缓存刷新时间戳,并基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表,调用所述待更新目标表的缓存刷新实现类,通过所述缓存刷新实现类对待更新目标表的表数据进行缓存刷新。
[0010]作为优选,述元数据还包括扩展信息,所述扩展信息包括刷新缓存实例ID、操作类型以及定时任务执行周期,所述操作类型包括新增、修改和删除。
[0011]作为优选,所述是否启用状态包括true和false,是否启用状态为true表示所述目标表处于启用住状态、能够被缓存刷新,是否启用状态为false表示所述目标表处于停止状态、禁止使用缓存。
[0012]作为优选,基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表,包括如下步骤:
[0013]将上次缓存刷新时间戳与缓存配置表所配置的所有处于启用状态的目标表的DB数据更新时间戳相比较;
[0014]当缓存配置表中DB数据更新时间戳晚于缓存中存放的上次缓存刷新时间戳,说明对应目标表的表数据有变更,则调用缓存配置表相应的缓存刷新实现类对所述目标表的表数据进行缓存刷新,并同步更新缓存中存放的上次缓存刷新时间戳为当前数据库时间,等待定时任务下一次执行;
[0015]当缓存配置表中DB数据更新时间戳早于缓存中存放的上次缓存刷新时间戳,说明缓存配置表中对应目标表的表数据没有进行过变动,则不对缓存继续进行操作。
[0016]作为优选,若定时任务为第一次执行,则上次缓存刷新时间戳为空,异步调用所有缓存刷新实现类进行缓存的全量刷新,后续如果缓存数据因不可抗力导致受损或丢失,可清除上次缓存刷新时间戳,缓存即可全量进行刷新操作。
[0017]更优的,还包括如下步骤:
[0018]扩展所述缓存配置表,在缓存配置表中增加定时任务执行周期配置字段,用于给每个使用缓存的表缓存刷新设置不同的定时任务执行周期。
[0019]作为优选,所述缓存刷新实现类用于实现所述目标表表数据的缓存刷新,包括实现表数据的条件查询、缓存批量删除和缓存批量新增。
[0020]第二方面,本专利技术的表维度的缓存刷新系统,所述系统用于执行如第一方面任一项所述的表维度的缓存刷新方法,所述系统包括多个可插拔功能模块,所述功能模块包括:
[0021]缓存刷新实现类生成模块,对于要接入缓存的目标表,所述缓存刷新实现类生成模块用于配置所述目标表对应的缓存刷新实现类,所述缓存刷新实现类用于实现所述目标表表数据的缓存刷新;
[0022]缓存配置模块,所述缓存配置模块用于配置缓存配置表,对于要接入缓存的目标表,所述缓存配置模块用于将所述目标表的元数据配置至缓存配置表中,所述元数据包括所述目标表对应的的表名、缓存刷新实现类全路径、DB数据更新时间戳、以及是否启用状态;
[0023]DB数据更新时间戳更新模块,对于要接入缓存的目标表,所述DB数据更新时间戳更新模块用于配置所述目标表对应的缓存刷新标识生成器,通过所述缓存标识生成器监测目标表中表数据是否有变动,并基于目标表中表数据的变动对配置表中所述目标表的DB数据更新时间戳进行更新;
[0024]缓存更新模块,所述缓存更新模块配置有定时任务,所述缓存更新模块用于通过定时任务获取缓存中存放的上次缓存刷新时间戳,并基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表,调用所述待更新目标表的缓存刷新实现类,通过所述缓存刷新实现类对待更新目标表的表数据进行缓存刷新;
[0025]所述缓存配置模块还用于扩展所述缓存配置表,在缓存配置表中增加定时任务执行周期配置字段,用于给每个使用缓存的表缓存刷新设置不同的定时任务执行周期。
[0026]作为优选,所述缓存配置表用于通过如下步骤,实现基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表:
[0027]将上次缓存刷新时间戳与缓存配置表所配置的所有处于启用状态的目标表的DB数据更新时间戳相比较;
[0028]当缓存配置表中DB数据更新时间戳晚于缓存中存放的上次缓存刷新时间戳,说明对应目标表的表数据有变更,则调用缓存配置表相应的缓存刷新实现类对所述目标表的表数据进行缓存刷新,并同步更新缓存中存放的上次缓存刷新时间戳为当前数据库时间,等待定时任务下一次执行;
[0029]当缓存配置表中DB数据更新时间戳早于缓存中存放的上次缓存刷新时间戳,说明缓存配置表中对应目标表的表数据没有进行过变动,则不对缓存继续进行操作。
[0030]作为优选,所述缓存配置表用于执行如下步骤:
[0031]若定时任务为第一次执行,则上次缓存刷新时间戳为空,异步调用所有缓存刷新实现类进行缓存的全量刷新,后续如果缓存数据因不可抗力导致受损或丢失,可清除上次缓存刷新时间戳,缓存即可全量进行刷新操作。
[0032]本专利技术的表维度的缓存刷新方法及系统具有以下优点:
[0033]1、实现了以表为维度的缓存增量刷新,只要配置好相应的缓存刷新生成器与缓存刷新实现类,则刷新目标、时间、间隔可控可配,可大幅度降低性能浪费;
[0034]2、实现了多表缓存系统设计下的缓存刷新,各模块之间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.表维度的缓存刷新方法,其特征在于包括如下步骤:对于要接入缓存的目标表,配置所述目标表对应的缓存刷新实现类,所述缓存刷新实现类用于实现所述目标表表数据的缓存刷新;对于要接入缓存的目标表,将所述目标表的元数据配置至缓存配置表中,所述元数据包括所述目标表对应的的表名、缓存刷新实现类全路径、DB数据更新时间戳、以及是否启用状态;对于要接入缓存的目标表,配置所述目标表对应的缓存刷新标识生成器,通过所述缓存标识生成器监测目标表中表数据是否有变动,并基于目标表中表数据的变动对配置表中所述目标表的DB数据更新时间戳进行更新;通过定时任务获取缓存中存放的上次缓存刷新时间戳,并基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表,调用所述待更新目标表的缓存刷新实现类,通过所述缓存刷新实现类对待更新目标表的表数据进行缓存刷新。2.根据权利要求1所述的表维度的缓存刷新方法,其特征在于所述元数据还包括扩展信息,所述扩展信息包括刷新缓存实例ID、操作类型以及定时任务执行周期,所述操作类型包括新增、修改和删除。3.根据权利要求1所述的表维度的缓存刷新方法,其特征在于所述是否启用状态包括true和false,是否启用状态为true表示所述目标表处于启用住状态、能够被缓存刷新,是否启用状态为false表示所述目标表处于停止状态、禁止使用缓存。4.根据权利要求1所述的表维度的缓存刷新方法,其特征在于基于配置表中每个目标表的是否启用状态以及上次缓存刷新时间戳和配置表中每个目标表的数据更新时间戳的对比结果,查找待更新目标表,包括如下步骤:将上次缓存刷新时间戳与缓存配置表所配置的所有处于启用状态的目标表的DB数据更新时间戳相比较;当缓存配置表中DB数据更新时间戳晚于缓存中存放的上次缓存刷新时间戳,说明对应目标表的表数据有变更,则调用缓存配置表相应的缓存刷新实现类对所述目标表的表数据进行缓存刷新,并同步更新缓存中存放的上次缓存刷新时间戳为当前数据库时间,等待定时任务下一次执行;当缓存配置表中DB数据更新时间戳早于缓存中存放的上次缓存刷新时间戳,说明缓存配置表中对应目标表的表数据没有进行过变动,则不对缓存继续进行操作。5.根据权利要求4所述的表维度的缓存刷新方法,其特征在于若定时任务为第一次执行,则上次缓存刷新时间戳为空,异步调用所有缓存刷新实现类进行缓存的全量刷新,后续如果缓存数据因不可抗力导致受损或丢失,可清除上次缓存刷新时间戳,缓存即可全量进行刷新操作。6.根据权利要求4所述的表维度的缓存刷新方法,其特征在于所述方法还包括如下步骤:扩展所述缓存配置表,在缓存配置表中增加定时任务执行周期配置字段,用于给每个使用缓存的表缓存刷新设置不同的定时任务执行周期。7.根据权利要求1所述的表维度的缓存刷新方法,其特征在于所述缓存刷新实现类用<...

【专利技术属性】
技术研发人员:李承林徐士强杨继伟董玉全
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1