CN106484869A - 一种基于mysql binlog的分布式缓存方法及系统 - Google Patents
一种基于mysql binlog的分布式缓存方法及系统 Download PDFInfo
- Publication number
- CN106484869A CN106484869A CN201610889094.1A CN201610889094A CN106484869A CN 106484869 A CN106484869 A CN 106484869A CN 201610889094 A CN201610889094 A CN 201610889094A CN 106484869 A CN106484869 A CN 106484869A
- Authority
- CN
- China
- Prior art keywords
- binlog
- mysql
- data
- database
- distributed caching
- 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
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/25—Integrating or interfacing systems involving database management systems
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于mysql binlog的分布式缓存方法,其保证了分布式缓存数据的及时性,降低了mysql数据库的压力,降低了请求延迟,提升了用户体验。该方法包括:(1)启用mysql数据库的二进制日志文件binlog;(2)在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;(3)解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;(4)用户访问时,直接从分布式缓存中获取数据。还有基于mysql binlog的分布式缓存系统。
Description
技术领域
本发明涉及信息处理的技术领域,尤其涉及一种基于mysql binlog的分布式缓存方法,以及基于mysql binlog的分布式缓存系统。
背景技术
现有的技术方案:当用户访问应用程序时,应用程序会先从分布式缓存中根据key获取缓存数据,如果分布式缓存中没有key对应的缓存数据,则应用程序从mysql中查询数据并返回给用户,同时将数据更新到分布式缓存。假如有大量的用户来访问应用程序的,同时这些用户访问请求的数据也不在分布式缓存中,这个时候大量的用户访问只能查询mysql,这样导致mysql压力非常大,mysql成为整个应用程序的性能瓶颈,用户访问请求出现大量的延迟,严重影响了用户体验。例如,中国专利申请号CN201410125645.8,公开了一种用于获取MySQLbinlog增量日志的方法和装置。
发明内容
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种基于mysqlbinlog的分布式缓存方法,其保证了分布式缓存数据的及时性,降低了mysql数据库的压力,降低了请求延迟,提升了用户体验。
本发明的技术方案是:这种基于mysql binlog的分布式缓存方法,该方法包括以下步骤:
(1)启用mysql数据库的二进制日志文件binlog;
(2)在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
(3)解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
(4)用户访问时,直接从分布式缓存中获取数据。
本发明通过binlog实现数据实时缓存,保证了分布式缓存数据的及时性;用户访问时,直接从分布式缓存中获取数据,不再需要访问mysql,降低了mysql数据库的压力;所有用户的请求应用程序都可以通过分布式缓存获取到,降低了请求延迟,提升了用户体验。
还提供了一种基于mysql binlog的分布式缓存系统,该系统包括:
binlog启用模块,其配置来启用mysql数据库的二进制日志文件binlog;
binlog生成模块,其配置来在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
binlog解析模块,其配置来解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
访问数据模块,其配置来用户访问时,直接从分布式缓存中获取数据。
附图说明
图1所示为根据本发明的基于mysql binlog的分布式缓存方法的流程图。
具体实施方式
如图1所示,这种基于mysql binlog的分布式缓存方法,该方法包括以下步骤:
(1)启用mysql数据库的二进制日志文件binlog;
(2)在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
(3)解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
(4)用户访问(应用程序)时,直接从分布式缓存中获取数据。
本发明通过binlog实现数据实时缓存,保证了分布式缓存数据的及时性;用户访问时,直接从分布式缓存中获取数据,不再需要访问mysql,降低了mysql数据库的压力;所有用户的请求应用程序都可以通过分布式缓存获取到,降低了请求延迟,提升了用户体验。
另外,所述步骤(1)中,在mysql数据库的安装目录中找到配置文件my.cnf,用vimmy.cnf对其进行编辑,修改或增加其中的条目。
另外,所述步骤(1)中,配置后测试mysql中log_bin变量,如果其状态为ON则配置正确。
另外,所述步骤(2)中,对应用户需要访问的数据在产生的时候通过一个应用程序接口写入mysql数据库,这个应用程序接口只负责写入操作,每一条数据在mysql数据库中插入或者修改一个条目,这些插入或者修改操作同时以二进制形式被存储在mysql的binlog中。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种基于mysqlbinlog的分布式缓存系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统,该系统包括:
binlog启用模块,其配置来启用mysql数据库的二进制日志文件binlog;
binlog生成模块,其配置来在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
binlog解析模块,其配置来解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
访问数据模块,其配置来用户访问时,直接从分布式缓存中获取数据。
另外,所述binlog启用模块中,在mysql数据库的安装目录中找到配置文件my.cnf,用vim my.cnf对其进行编辑,修改或增加其中的条目。
另外,所述binlog启用模块中,配置后测试mysql中log_bin变量,如果其状态为ON则配置正确。
另外,所述binlog生成模块中,对应用户需要访问的数据在产生的时候通过一个应用程序接口写入mysql数据库,这个应用程序接口只负责写入操作,每一条数据在mysql数据库中插入或者修改一个条目,这些插入或者修改操作同时以二进制形式被存储在mysql的binlog中。
本发明的有益效果如下:
1.通过binlog实现数据实时缓存,保证了分布式缓存数据的及时性。
2.应用程序不再需要访问mysql,降低了mysql数据库的压力。
3.所有用户的请求应用程序都可以通过分布式缓存获取到,降低了请求延迟,提升了用户体验。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (8)
1.一种基于mysql binlog的分布式缓存方法,其特征在于:该方法包括以下步骤:
(1)启用mysql数据库的二进制日志文件binlog;
(2)在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
(3)解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
(4)用户访问时,直接从分布式缓存中获取数据。
2.根据权利要求1所述的基于mysql binlog的分布式缓存方法,其特征在于:所述步骤(1)中,在mysql数据库的安装目录中找到配置文件my.cnf,用vim my.cnf对其进行编辑,修改或增加其中的条目。
3.根据权利要求2所述的基于mysql binlog的分布式缓存方法,其特征在于:所述步骤(1)中,配置后测试mysql中log_bin变量,如果其状态为ON则配置正确。
4.根据权利要求3所述的基于mysql binlog的分布式缓存方法,其特征在于:所述步骤(2)中,对应用户需要访问的数据在产生的时候通过一个应用程序接口写入mysql数据库,这个应用程序接口只负责写入操作,每一条数据在mysql数据库中插入或者修改一个条目,这些插入或者修改操作同时以二进制形式被存储在mysql的binlog中。
5.一种基于mysql binlog的分布式缓存系统,其特征在于:该系统包括:
binlog启用模块,其配置来启用mysql数据库的二进制日志文件binlog;
binlog生成模块,其配置来在数据直接写入mysql数据库时,同时将更新数据写到binlog文件中;
binlog解析模块,其配置来解析binlog文件,将数据库变化的数据实时地写到分布式缓存中;
访问数据模块,其配置来用户访问时,直接从分布式缓存中获取数据。
6.根据权利要求5所述的基于mysql binlog的分布式缓存系统,其特征在于:所述binlog启用模块中,在mysql数据库的安装目录中找到配置文件my.cnf,用vim my.cnf对其进行编辑,修改或增加其中的条目。
7.根据权利要求6所述的基于mysql binlog的分布式缓存系统,其特征在于:所述binlog启用模块中,配置后测试mysql中log_bin变量,如果其状态为ON则配置正确。
8.根据权利要求7所述的基于mysql binlog的分布式缓存系统,其特征在于:所述binlog生成模块中,对应用户需要访问的数据在产生的时候通过一个应用程序接口写入mysql数据库,这个应用程序接口只负责写入操作,每一条数据在mysql数据库中插入或者修改一个条目,这些插入或者修改操作同时以二进制形式被存储在mysql的binlog中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610889094.1A CN106484869A (zh) | 2016-10-12 | 2016-10-12 | 一种基于mysql binlog的分布式缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610889094.1A CN106484869A (zh) | 2016-10-12 | 2016-10-12 | 一种基于mysql binlog的分布式缓存方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106484869A true CN106484869A (zh) | 2017-03-08 |
Family
ID=58270546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610889094.1A Pending CN106484869A (zh) | 2016-10-12 | 2016-10-12 | 一种基于mysql binlog的分布式缓存方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106484869A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291926A (zh) * | 2017-06-29 | 2017-10-24 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
CN108491332A (zh) * | 2018-04-04 | 2018-09-04 | 浙江小泰科技有限公司 | 一种基于Redis的实时缓存更新方法和系统 |
CN109857812A (zh) * | 2019-02-27 | 2019-06-07 | 珠海天燕科技有限公司 | 一种处理缓存中数据的方法和装置 |
CN110287273A (zh) * | 2019-07-03 | 2019-09-27 | 成都路行通信息技术有限公司 | 基于监听MySQL数据库binlog变化实现数据同步的方法和系统 |
CN111026771A (zh) * | 2019-11-19 | 2020-04-17 | 拉货宝网络科技有限责任公司 | 一种保证缓存与数据库数据一致的方法 |
CN112084267A (zh) * | 2020-07-29 | 2020-12-15 | 北京思特奇信息技术股份有限公司 | 解决分布式数据库全局广播的方法 |
CN112463813A (zh) * | 2020-11-19 | 2021-03-09 | 贝壳技术有限公司 | 数据缓存方法、装置、电子设备和存储介质 |
CN112084267B (zh) * | 2020-07-29 | 2024-06-07 | 北京思特奇信息技术股份有限公司 | 解决分布式数据库全局广播的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876996A (zh) * | 2009-12-01 | 2010-11-03 | 广州从兴电子开发有限公司 | 一种内存数据库到文件数据库的数据同步方法及系统 |
CN103221949A (zh) * | 2010-07-27 | 2013-07-24 | 甲骨文国际公司 | Mysql数据库的异构的基于日志的复制 |
CN104572689A (zh) * | 2013-10-17 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置及系统 |
CN104636480A (zh) * | 2015-02-13 | 2015-05-20 | 华为技术有限公司 | 重建备机数据库的方法及其装置 |
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
-
2016
- 2016-10-12 CN CN201610889094.1A patent/CN106484869A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876996A (zh) * | 2009-12-01 | 2010-11-03 | 广州从兴电子开发有限公司 | 一种内存数据库到文件数据库的数据同步方法及系统 |
CN103221949A (zh) * | 2010-07-27 | 2013-07-24 | 甲骨文国际公司 | Mysql数据库的异构的基于日志的复制 |
CN104572689A (zh) * | 2013-10-17 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置及系统 |
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
CN104636480A (zh) * | 2015-02-13 | 2015-05-20 | 华为技术有限公司 | 重建备机数据库的方法及其装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341212A (zh) * | 2017-06-26 | 2017-11-10 | 努比亚技术有限公司 | 一种缓存更新方法及设备 |
CN107291926A (zh) * | 2017-06-29 | 2017-10-24 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN107291926B (zh) * | 2017-06-29 | 2020-08-18 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
CN108491332A (zh) * | 2018-04-04 | 2018-09-04 | 浙江小泰科技有限公司 | 一种基于Redis的实时缓存更新方法和系统 |
CN109857812A (zh) * | 2019-02-27 | 2019-06-07 | 珠海天燕科技有限公司 | 一种处理缓存中数据的方法和装置 |
CN110287273A (zh) * | 2019-07-03 | 2019-09-27 | 成都路行通信息技术有限公司 | 基于监听MySQL数据库binlog变化实现数据同步的方法和系统 |
CN111026771A (zh) * | 2019-11-19 | 2020-04-17 | 拉货宝网络科技有限责任公司 | 一种保证缓存与数据库数据一致的方法 |
CN111026771B (zh) * | 2019-11-19 | 2023-11-07 | 拉货宝网络科技有限责任公司 | 一种保证缓存与数据库数据一致的方法 |
CN112084267A (zh) * | 2020-07-29 | 2020-12-15 | 北京思特奇信息技术股份有限公司 | 解决分布式数据库全局广播的方法 |
CN112084267B (zh) * | 2020-07-29 | 2024-06-07 | 北京思特奇信息技术股份有限公司 | 解决分布式数据库全局广播的方法 |
CN112463813A (zh) * | 2020-11-19 | 2021-03-09 | 贝壳技术有限公司 | 数据缓存方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484869A (zh) | 一种基于mysql binlog的分布式缓存方法及系统 | |
CN106649349B (zh) | 用于游戏应用的数据缓存方法、装置和系统 | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US8886884B2 (en) | System and method for increasing read and write speeds of hybrid storage unit | |
CN100456311C (zh) | 用于实施基于内容的文件系统安全性的系统和方法 | |
US9992298B2 (en) | Relationship-based WAN caching for object stores | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN107832237B (zh) | 一种快速重建未映射表的方法及固态硬盘 | |
CN103164346A (zh) | Lba位图使用 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN102662690A (zh) | 应用程序启动方法和装置 | |
CN111581126B (zh) | 一种基于ssd的日志数据保存方法、装置、设备和介质 | |
CN103747072A (zh) | 一种读写数据的方法和应用服务器 | |
CN103488732A (zh) | 一种静态页面生成方法及装置 | |
CN105224444A (zh) | 日志生成方法及装置 | |
CN110399499B (zh) | 一种语料生成方法、装置、电子设备及可读存储介质 | |
CN104699417A (zh) | 数据储存装置以及其数据存取方法 | |
CN109219804B (zh) | 非易失内存访问方法、装置和系统 | |
CN107526828B (zh) | 页面信息推荐方法和装置 | |
CN103473326A (zh) | 一种提供搜索建议的方法和装置 | |
CN103777969A (zh) | 一种无需重启部署服务器参数的方法和装置 | |
CN101188521B (zh) | 一种挖掘用户行为数据的方法和网站服务器 | |
CN101576854A (zh) | 文件访问的方法、装置及系统 | |
CN109213691B (zh) | 用于缓存管理的方法和设备 | |
CN103514140B (zh) | 用于实现可重构系统中配置信息多发射的重构控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170308 |
|
RJ01 | Rejection of invention patent application after publication |