一种数据库缓存的刷新方法、系统和装置制造方法及图纸

技术编号:25708552 阅读:17 留言:0更新日期:2020-09-23 02:55
本发明专利技术涉及数据库领域,特别是涉及一种数据库缓存的刷新方法和装置。其主要步骤为:将数据库日志解析为数据变更事件的记录,其中,数据变更事件的记录的字段包括表名、事件类型、更新字段和记录数据;将数据变更事件的记录存入变更事件队列中;依次获取变更事件队列中的每一条数据变更事件的记录;根据数据变更事件的各字段的值获取数据库缓存的配置规则;根据数据变更事件和配置规则对数据库缓存进行刷新。本发明专利技术将数据库读写的业务代码和数据库缓存中数据的过期淘汰解耦合,提升了缓存刷新系统的通用性,减少应用的处理复杂度。

【技术实现步骤摘要】
一种数据库缓存的刷新方法、系统和装置
本专利技术涉及数据库领域,特别是涉及一种数据库缓存的刷新方法、系统和装置。
技术介绍
互联网和移动互联网应用中,数据库需要及时响应大量并发读写请求,为了避免读写冲突,提高请求的相应速度,可以使用缓存系统将待读取的数据单独存储,使得读写可以并行进行,不必互相等待,提高系统的而相应时间和吞吐量。使用缓存系统时,为了使缓存的内容和数据库内容保持同步避免因同步不及时而导致的数据不一致,也为了及时清除缓存中的无用数据避免缓存空间不足或缓存空间过大,需要对缓存的数据进行及时增加、更新、删除的刷新操作。目前通常使用的刷新策略为定时刷新或事件触发刷新。定时刷新根据固定的过期时间周期进行刷新,预设的过期时间到时缓存自动失效或刷新,这种方式实现相对简单,但时效性取决于失效时间设置的长短,若过期时间较长会导致刷新不及时,若过期时间过短会导致缓存频繁刷新降低缓存的效率。事件触发刷新通过数据变更事件触发缓存更新,时效性较高,并且数据更新的时候才会刷新缓存,对于大部分读多写少的应用缓存刷新效率比较高,但缺点是实现起来会比较复杂,需要引入大量代码完成事件通知和缓存更新等操作。鉴于此,如何克服该现有技术所存在的缺陷,解决缓存系统更新效率和控制复杂度的矛盾,是本
待解决的问题。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术解决了事件触发式刷新策略控制方式复杂的问题。本专利技术实施例采用如下技术方案:第一方面,本专利技术提供了一种数据库缓存的刷新方法,其特征在于:将数据库日志解析为数据变更事件的记录,其中,数据变更事件的记录的字段包括表名、事件类型、更新字段和记录数据;将数据变更事件的记录存入变更事件队列中;依次获取变更事件队列中的每一条数据变更事件的记录;根据数据变更事件的各字段的值获取数据库缓存的配置规则;根据数据变更事件和配置规则对数据库缓存进行刷新。优选的,将数据库日志解析为数据变更事件的记录,具体为:查找变更事件在数据库日志中的记录,变更事件包括更新、删除和创建事件;根据查找到的数据库日志中的记录,获取发生事件变更的表名,将表名写入数据变更事件的表名字段;根据查找到的数据库日志中的记录,获取变更事件的类型,将变更事件的类型写入数据变更事件的事件类型字段;根据查找到的数据库日志中的记录,获取数据库记录变更前后的数据,将发生变更的字段名写入数据变更事件的更新字段字段,将变更后的数据写入数据变更事件的记录数据字段。优选的,根据数据变更事件的属性获取数据库缓存的配置规则,具体为:若数据变更事件的事件类型为更新事件,通过表名、事件类型和更新字段获取配置规则;若数据变更事件的事件类型为删除事件或创建事件,通过表名和事件类型获取配置规则。优选的,数据库缓存的主键包括静态主键和动态主键,静态主键具体为预设的主键字符串,动态主键具体为数据更新事件对应的数据库记录中的至少一个字段的值。优选的,根据数据变更事件和配置规则对数据库缓存进行刷新,具体为,若数据变更事件的事件类型为删除事件:若需删除的数据库缓存中的记录主键为静态主键,将数据库缓存中对应的数据变更事件的缓存记录删除;若需删除的数据库缓存中的记录主键为动态主键,按照构造规则由数据变更事件生成主键,将缓存中与生成的主键相应的缓存记录删除。优选的,按照构造规则由数据变更事件生成主键,具体为:根据构造规则获取数据变更事件中的更新字段和/或记录数据中相应的字段的值,根据字段的值生成主键。优选的:将数据变更事件的记录存入变更事件队列中和根据数据变更事件和配置规则对数据库缓存进行刷新两个步骤并发执行。优选的,变更事件队列采用持久化存储,以便于在系统断电时保存数据变更事件,避免数据库和数据库缓存中数据不同步。另一方面,本专利技术还提供了一种数据库的缓存刷新的系统,包括数据库、缓存系统、缓存刷新系统;缓存系统内持久化存储需缓存的数据库的记录;缓存刷新系统由数据库日志中获取数据变更事件,将数据变更事件解析为数据变更事件记录,根据数据变更事件的属性获取变更事件队列的配置规则将数据变更事件记录存入缓存系统,或从缓存系统中删除数据变更事件记录,根据数据变更队列中的记录对数据库缓存进行刷新。另一方面,本专利技术还提供了一种数据库的缓存刷新的装置,包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成权利要求1-9任一所述的数据库的缓存刷新的装置方法。与现有技术相比,本专利技术实施例的有益效果在于:通过使用变更事件队列将数据库读写的业务代码和数据库缓存中数据的过期淘汰解耦合,提升了缓存刷新系统的通用性,减少应用的处理复杂度。进一步的,本专利技术实施例还提供了一种数据库的缓存刷新的系统,通过独立的缓存刷新系统监听数据库的更新日志,通过变更事件队列管理缓存系统的刷新和过期,以便于简化缓存系统中数据的管理和动态刷新。本专利技术实施例还提供了一种数据库的缓存刷新的装置,通过处理器和存储器的硬件执行实现数据库的缓存刷新。【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种数据库的缓存刷新的方法流程图;图2为本专利技术实施例提供的另一种数据库的缓存刷新的方法流程图;图3为本专利技术实施例提供的另一种数据库的缓存刷新的方法流程图;图4为本专利技术实施例提供的一种数据库的缓存刷新的系统结构示意图;图5为本专利技术实施例提供的一种数据库的缓存刷新的装置结构示意图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本专利技术。实施例1:在数据库读写过程中,为了保证数据库和缓存系统的同步性,并简化读写时的控制复杂度,本实施例中在数据库缓存之外设立了变更事件队列,使用变更事件队列对数据库中的变更事件事实同步保证数据的一致性,使用配置规则过滤需缓存中的过期数据,解除了数据库和数据库缓存之间的耦合。如图1所示,本专利技术实施例提供的数据库缓存的刷新方法的方法具体步骤如下:步骤101:将数据库日志解析为数据变更事件的记录,数据变更事件的记录的字段包括表名、事件类型、更新字段、记录数据。在数据库系统中,数据本文档来自技高网...

【技术保护点】
1.一种数据库缓存的刷新方法,其特征在于:/n将数据库日志解析为数据变更事件的记录,其中,所述数据变更事件的记录的字段包括表名、事件类型、更新字段和记录数据;/n将数据变更事件的记录存入变更事件队列中;/n依次获取变更事件队列中的每一条数据变更事件的记录;/n根据数据变更事件的各字段的值获取数据库缓存的配置规则;/n根据数据变更事件和配置规则对数据库缓存进行刷新。/n

【技术特征摘要】
1.一种数据库缓存的刷新方法,其特征在于:
将数据库日志解析为数据变更事件的记录,其中,所述数据变更事件的记录的字段包括表名、事件类型、更新字段和记录数据;
将数据变更事件的记录存入变更事件队列中;
依次获取变更事件队列中的每一条数据变更事件的记录;
根据数据变更事件的各字段的值获取数据库缓存的配置规则;
根据数据变更事件和配置规则对数据库缓存进行刷新。


2.根据权利要求1所述的数据库缓存的刷新方法,其特征在于,所述将数据库日志解析为数据变更事件的记录,具体为:
查找变更事件在数据库日志中的记录,所述变更事件包括更新、删除和创建事件;
根据查找到的数据库日志中的记录,获取发生事件变更的表名,将所述表名写入数据变更事件的表名字段;
根据查找到的数据库日志中的记录,获取变更事件的类型,将所述变更事件的类型写入数据变更事件的事件类型字段;
根据查找到的数据库日志中的记录,获取数据库记录变更前后的数据,将发生变更的字段名写入数据变更事件的更新字段字段,将变更后的数据写入数据变更事件的记录数据字段。


3.根据权利要求2所述的数据库缓存的刷新方法,其特征在于,根据数据变更事件的属性获取数据库缓存的配置规则,具体为:
若数据变更事件的事件类型为更新事件,通过表名、事件类型和更新字段获取配置规则;
若数据变更事件的事件类型为删除事件或创建事件,通过表名和事件类型获取配置规则。


4.根据权利要求1所述的数据库缓存的刷新方法,其特征在于:所述数据库缓存的主键包括静态主键和动态主键,静态主键具体为预设的主键字符串,动态主键具体为数据更新事件对应的数据库记录中的至少一个字段的值。


5.根据权利要求4所述的数据库缓存的刷新方法,其特征在于,所述根据数据变更事件和...

【专利技术属性】
技术研发人员:秦伟樊国鹏朱留锋
申请(专利权)人:武汉灯塔之光科技有限公司
类型:发明
国别省市:湖北;42

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

1