CN113448977A - 基于数据库Binlog的分布式缓存更新方法及装置 - Google Patents
基于数据库Binlog的分布式缓存更新方法及装置 Download PDFInfo
- Publication number
- CN113448977A CN113448977A CN202110788368.9A CN202110788368A CN113448977A CN 113448977 A CN113448977 A CN 113448977A CN 202110788368 A CN202110788368 A CN 202110788368A CN 113448977 A CN113448977 A CN 113448977A
- Authority
- CN
- China
- Prior art keywords
- data
- changed
- binlog
- distributed cache
- log file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库Binlog的分布式缓存更新方法及装置,涉及分布式系统技术领域,其中该方法包括:监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;从日志文件内容中检测出发生变更的数据;从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。本发明可以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,提升了分布式缓存数据更新的时效性。
Description
技术领域
本发明涉及分布式系统技术领域,尤其涉及一种基于数据库Binlog的分布式缓存更新方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
热点数据通常保存在数据库中间件中,避免数据丢失,但因数据库中间件性能无法满足热点数据高并发读写的需求,业内常规做法是将热点数据从数据库中间件同步到分布式缓存中,热点数据读写过程如下:
1)在获取热点数据时,优先从分布式缓存中获取,如果获取到热点数据时则结束,否则进行下一步;
2)从数据库中间件中获取热点数据;
3)将数据库中获取的热点数据写到分布式缓存中,同时设置一个过期时间,在过期时间之前热点数据获取均从分布式缓存中获取,过期时间之后再重复1-3步骤。
从上面获取热点数据的流程可以看出,分布式缓存不具备自动更新数据的能力,即无法感知数据库中间件数据的变更,导致数据库中间件存储的热点数据与分布式缓存存储的热点数据不一致。
发明内容
本发明实施例提供一种基于数据库Binlog的分布式缓存更新方法,用以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,该方法包括:
监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
从日志文件内容中检测出发生变更的数据;
从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
本发明实施例还提供一种基于数据库Binlog的分布式缓存更新装置,用以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,该装置包括:
数据库中间件Binlog监听单元,用于监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
日志文件解析单元,用于从日志文件内容中检测出发生变更的数据;
分布式缓存数据写入单元,用于从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于数据库Binlog的分布式缓存更新方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于数据库Binlog的分布式缓存更新方法的计算机程序。
本发明实施例中,基于数据库Binlog的分布式缓存更新方案,通过:监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;从日志文件内容中检测出发生变更的数据;从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中,可以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,提升了分布式缓存数据更新的时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中基于数据库Binlog的分布式缓存更新方法的流程示意图;
图2为本发明实施例中基于数据库Binlog的分布式缓存更新的原理示意图;
图3为本发明另一实施例中基于数据库Binlog的分布式缓存更新方法的流程示意图;
图4为本发明另一实施例中基于数据库Binlog的分布式缓存更新方法的流程示意图;
图5为本发明另一实施例中基于数据库Binlog的分布式缓存更新装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例之前,首先对本发明实施例涉及的名词进行介绍。
1.分布式缓存
一种以key/value键值对数据结构存储数据的中间件,具备高效的读写性能,常用于热点数据的存储。目前使用广泛的分布式缓存中间件有Redis。
2.数据库中间件
一种具有持久化存储数据能力的中间件,数据保存在磁盘,数据读写时磁盘IO较频繁,但磁盘IO耗时较大。目前使用广泛的数据库中间件有Mysql、Oracle。
3.Binlog日志文件
数据库中间件记录数据变更的日志文件,通过它可以获取变更前/后的数据。
4.主从复制
高可用数据库架构一般包含一个主节点和多个从节点,其中主节点对外提供读写服务,从节点进行数据冗余备份。当主节点数据发生变更时,主节点数据库会将变更数据登记在Binlog文件,从节点读取主节点Binlog日志文件,同时将变更数据写入自己的数据库,这个过程称为主从复制。
5.热点数据
高频读写的数据统称为热点数据。
现有技术存在的缺点是:数据更新不及时,存在一定时间的延迟,不能满足实时性要求,即本发明主要解决了数据库中间件存储的热点数据不能及时更新到分布式缓存,从而导致数据库中间件存储的热点数据与分布式缓存存储的热点数据不一致。本发明提出了一种基于数据库Binlog的分布式缓存更新方案,该方案解决了数据更新时效性问题,其为基于监听数据库中间件Binlog日志文件内容的变更,将变更数据更新到分布式缓存(其日志文件由数据库中间件产生,完全遵守各个数据库中间件的日志规范,按照其日志规范即可解析变更数据的信息);目前尚无数据库中间件中数据实时更新到分布式缓存的解决方案,类似的方案:利用分布式缓存数据过期机制,延迟伪更新,存在数据库中间件数据与分布式缓存数据不一致的问题。下面对该基于数据库Binlog的分布式缓存更新方案进行详细介绍。
图1为本发明实施例中基于数据库Binlog的分布式缓存更新方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
步骤102:从日志文件内容中检测出发生变更的数据;
步骤103:从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
本发明实施例提供了一种基于数据库Binlog的分布式缓存更新方法可以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,提升了分布式缓存数据更新的时效性。下面结合图2对该方法涉及的各个步骤进行详细介绍。
数据库中间件在数据发生变更(例如增删改)时,会自动记录Binlog日志文件。如图2所示,本发明实施例通过以下步骤解决上述技术问题:
一、首先,介绍上述步骤101。
在一个实施例中,监听Binlog日志文件并读取日志文件内容,可以包括:执行监听Binlog日志文件并读取日志文件内容的单元伪装自己是数据库从节点,利用数据库主从复制机制接收数据库中间件的Binlog日志。
具体实施时,该步骤101监听数据库中间件Binlog日志文件并解析文件内容,能够感知数据库中间件数据的变更,该步骤101可以通过数据库中间件Binlog监听单元来实现,该数据库中间件Binlog监听单元遵守数据库中间件主从复制协议,伪装自己是数据库从节点,利用数据库主从复制机制接收数据库中间件的Binlog日志,实现了监听数据库中间的数据变更,采用数据库主从复制机制,进而进一步提高了分布式缓存数据更新的时效性。
二、接着,介绍上述步骤102。
在一个实施例中,如图3所示,从日志文件内容中检测出发生变更的数据,可以包括:
步骤201:按照Binlog日志文件规范对Binlog日志文件进行解析;
步骤202:从解析后得到的文件中获取发生变更的数据。
具体实施时,该步骤102按照Binlog日志文件规范对日志内容进行解析,获取发生变更的数据,即将步骤101的日志文件作为输入,遵守数据库中间件Binlog日志规范进行文件解析,得到数据库变更数据,进而进一步提高了分布式缓存数据更新的时效性。
三、接着,介绍上述步骤103。
在一个实施例中,如图4所示,从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中,可以包括:
步骤301:从发生变更的数据中筛选出变更的热点数据;
步骤302:将变更的热点数据的数据结构转换为分布式缓存的数据结构,得到分布式缓存数据结构的变更热点数据;
步骤303:将分布式缓存数据结构的变更热点数据写入到分布式缓存中。
具体实施时,该步骤103筛选出热点数据,并将其写入到分布式缓存。具体地,文件内容(变更的热点数据)转换成分布式缓存数据结构,将数据库中间件变更数据(变更的热点数据)作为输入,通过加工将其装换为分布式缓存数据结构,同时将转换后的数据写入到分布式缓存,即将分布式缓存数据结构的变更热点数据写入到分布式缓存中。
具体实施时,本发明实施例在步骤103做了优化处理,即设置一定的规则,对变更数据进行筛选,排除掉不需要缓存的数据,避免缓存无用数据,浪费资源。
以上过程就可以在数据库中数据发生变更后实时将其变更数据更新到分布式缓存,如图2中的虚线箭头所示。
综上,本发明实施例提供的基于数据库Binlog的分布式缓存更新实现了:
1.分布式缓存更新动作对应用开发人员透明、无感知,降低开发难度,提升开发效率。
2.提升了分布式缓存数据更新时效性。
本发明实施例中还提供了一种基于数据库Binlog的分布式缓存更新装置,如下面的实施例所述。由于该装置解决问题的原理与基于数据库Binlog的分布式缓存更新方法相似,因此该装置的实施可以参见基于数据库Binlog的分布式缓存更新方法的实施,重复之处不再赘述。
图5为本发明另一实施例中基于数据库Binlog的分布式缓存更新装置的结构示意图,如图5所示,该装置包括:
数据库中间件Binlog监听单元01,用于监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
日志文件解析单元02,用于从日志文件内容中检测出发生变更的数据;
分布式缓存数据写入单元03,用于从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
在一个实施例中,所述分布式缓存数据写入单元具体可以用于:
从发生变更的数据中筛选出变更的热点数据;
将变更的热点数据的数据结构转换为分布式缓存的数据结构,得到分布式缓存数据结构的变更热点数据;
将分布式缓存数据结构的变更热点数据写入到分布式缓存中。
在一个实施例中,所述日志文件解析单元具体可以用于:
按照Binlog日志文件规范对Binlog日志文件进行解析;
从解析后得到的文件中获取发生变更的数据。
在一个实施例中,所述数据库中间件Binlog监听单元可以伪装自己是数据库从节点,利用数据库主从复制机制接收数据库中间件的Binlog日志。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于数据库Binlog的分布式缓存更新方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于数据库Binlog的分布式缓存更新方法的计算机程序。
本发明实施例中,基于数据库Binlog的分布式缓存更新方案,通过:监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;从日志文件内容中检测出发生变更的数据;从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中,可以实现数据库中间件存储的热点数据与分布式缓存存储的热点数据一致,提升了分布式缓存数据更新的时效性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于数据库Binlog的分布式缓存更新方法,其特征在于,包括:
监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
从日志文件内容中检测出发生变更的数据;
从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
2.如权利要求1所述的基于数据库Binlog的分布式缓存更新方法,其特征在于,从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中,包括:
从发生变更的数据中筛选出变更的热点数据;
将变更的热点数据的数据结构转换为分布式缓存的数据结构,得到分布式缓存数据结构的变更热点数据;
将分布式缓存数据结构的变更热点数据写入到分布式缓存中。
3.如权利要求1所述的基于数据库Binlog的分布式缓存更新方法,其特征在于,从日志文件内容中检测出发生变更的数据,包括:
按照Binlog日志文件规范对Binlog日志文件进行解析;
从解析后得到的文件中获取发生变更的数据。
4.如权利要求1所述的基于数据库Binlog的分布式缓存更新方法,其特征在于,监听Binlog日志文件并读取日志文件内容,包括:执行监听Binlog日志文件并读取日志文件内容的单元伪装自己是数据库从节点,利用数据库主从复制机制接收数据库中间件的Binlog日志。
5.一种基于数据库Binlog的分布式缓存更新装置,其特征在于,包括:
数据库中间件Binlog监听单元,用于监听Binlog日志文件并读取日志文件内容;所述日志文件内容中包括数据库中间件在数据发生变更时记录到Binlog日志文件的内容;
日志文件解析单元,用于从日志文件内容中检测出发生变更的数据;
分布式缓存数据写入单元,用于从发生变更的数据中筛选出变更的热点数据,将变更的热点数据写入到分布式缓存中。
6.如权利要求5所述的基于数据库Binlog的分布式缓存更新装置,其特征在于,所述分布式缓存数据写入单元具体用于:
从发生变更的数据中筛选出变更的热点数据;
将变更的热点数据的数据结构转换为分布式缓存的数据结构,得到分布式缓存数据结构的变更热点数据;
将分布式缓存数据结构的变更热点数据写入到分布式缓存中。
7.如权利要求5所述的基于数据库Binlog的分布式缓存更新装置,其特征在于,所述日志文件解析单元具体用于:
按照Binlog日志文件规范对Binlog日志文件进行解析;
从解析后得到的文件中获取发生变更的数据。
8.如权利要求5所述的基于数据库Binlog的分布式缓存更新装置,其特征在于,所述数据库中间件Binlog监听单元伪装自己是数据库从节点,利用数据库主从复制机制接收数据库中间件的Binlog日志。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788368.9A CN113448977A (zh) | 2021-07-13 | 2021-07-13 | 基于数据库Binlog的分布式缓存更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788368.9A CN113448977A (zh) | 2021-07-13 | 2021-07-13 | 基于数据库Binlog的分布式缓存更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113448977A true CN113448977A (zh) | 2021-09-28 |
Family
ID=77815933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110788368.9A Pending CN113448977A (zh) | 2021-07-13 | 2021-07-13 | 基于数据库Binlog的分布式缓存更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448977A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138807A (zh) * | 2021-12-06 | 2022-03-04 | 四三九九网络股份有限公司 | 一种实时更新数据库热点数据缓存的方法 |
CN115080662A (zh) * | 2022-06-21 | 2022-09-20 | 浙江网商银行股份有限公司 | 数据库切换方法和装置 |
-
2021
- 2021-07-13 CN CN202110788368.9A patent/CN113448977A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138807A (zh) * | 2021-12-06 | 2022-03-04 | 四三九九网络股份有限公司 | 一种实时更新数据库热点数据缓存的方法 |
CN114138807B (zh) * | 2021-12-06 | 2024-04-12 | 四三九九网络股份有限公司 | 一种实时更新数据库热点数据缓存的方法 |
CN115080662A (zh) * | 2022-06-21 | 2022-09-20 | 浙江网商银行股份有限公司 | 数据库切换方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
TWI468961B (zh) | 用於實施多使用者快取的參數化單元之方法及系統 | |
JP4977801B2 (ja) | ステートレスなプロトコルを介したドキュメントの同期 | |
CN107391634B (zh) | 数据迁移方法及装置 | |
CN113448977A (zh) | 基于数据库Binlog的分布式缓存更新方法及装置 | |
CN103729442A (zh) | 记录事务日志的方法和数据库引擎 | |
CN111708738B (zh) | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 | |
US20070156778A1 (en) | File indexer | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
WO2023077971A1 (zh) | 事务处理方法、装置、计算设备及存储介质 | |
CN113792094A (zh) | 一种数据同步系统、方法、设备及介质 | |
CN109165258A (zh) | 一种数据同步方法与装置 | |
CN114077518A (zh) | 数据快照方法、装置、设备及存储介质 | |
CN111158858A (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
US20150169668A1 (en) | Single Pass File System Repair With Copy On Write | |
CN110019130B (zh) | 一种数据库更新的方法及装置 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN115391337A (zh) | 数据库分区的方法、装置、存储介质及电子设备 | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN113835690A (zh) | 读写分离多数据源组件及其工作方法 | |
US11048664B2 (en) | Log destaging from fixed-size log portion |
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 |