CN114138807A - 一种实时更新数据库热点数据缓存的方法 - Google Patents
一种实时更新数据库热点数据缓存的方法 Download PDFInfo
- Publication number
- CN114138807A CN114138807A CN202111477554.7A CN202111477554A CN114138807A CN 114138807 A CN114138807 A CN 114138807A CN 202111477554 A CN202111477554 A CN 202111477554A CN 114138807 A CN114138807 A CN 114138807A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- hot spot
- cache
- database
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 3
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
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
-
- 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
-
- 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/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种实时更新数据库热点数据缓存的方法,包括以下步骤:数据库配置独立的监听线程,对数据库的状态进行实时监听,当监听到数据库发生更新操作时,将更新消息发布到消息队列;消息处理程序对消息队列中的更新消息进行逐条处理;采用更新消息Infor更新热点缓存。本发明提供一种实时更新数据库热点数据缓存的方法,增加数据库变动的监听线程,在数据库数据变动的时候,如果为热点数据,能及时的更新热点缓存,保证热点数据在数据库和热点缓存的一致性,解决了缓存和数据库信息短暂不一致问题。另外,本发明及时清除热点缓存的非热点数据,减少缓存量,从而及时释放热点缓存空间,保证热点缓存的有效使用。
Description
技术领域
本发明属于计算机信息处理技术领域,具体涉及一种实时更新数据库热点数据缓存的方法。
背景技术
传统数据库和缓存的读写方法为:读操作时:上层应用程序运行过程中,当需要读取数据时,首先判断缓存中是否有需要读取的目标数据,如果有,则直接从缓存读取目标数据;如果没有,则将数据库中的目标数据放入缓存中,再从缓存中读取目标数据。写操作时:当需要更新数据时,仅更新数据库中的相关数据;而缓存中的数据,按其生命周期进行移除操作。
以上数据库和缓存的读写方法存在以下问题:对于某个数据A,如果其在缓存中,并且,在缓存中的时间还没有达到其生命周期;而此时数据库对数据A进行更新操作,例如,删除数据A。因此,会存在数据库和缓存不一致的问题,在部分场景下数据库与缓存不一致是不可接受的,比如,游戏下线场景,数据库已删除游戏相关数据,而缓存中如果仍然存在该游戏相关数据,会导致游戏延迟下线,出现错误。
发明内容
针对现有技术存在的缺陷,本发明提供一种实时更新数据库热点数据缓存的方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种实时更新数据库热点数据缓存的方法,包括以下步骤:
步骤1,数据库配置独立的监听线程,对数据库的状态进行实时监听,当监听到数据库发生更新操作时,将更新消息发布到消息队列;
其中:
更新操作包括:写入操作、修改操作和删除操作;
更新消息包括:如果为写入操作,则更新消息为:写入新数据的消息;如果为修改操作,则更新消息为:将旧数据更新为新数据的消息;如果为删除操作,则更新消息为:将旧数据删除的消息;
步骤2,消息队列为先进先出队列;消息队列配置独立的消息处理程序;
消息处理程序对消息队列中的更新消息进行逐条处理;处理方法为:对于当前消息队列中最先存入的更新消息,表示为:更新消息Infor;消息处理程序读取更新消息Infor,同时将消息队列中的更新消息Infor删除;消息处理程序根据预设置的热点数据判断规则,判断读取到的更新消息Infor是否为热点更新消息,如果不是,则对更新消息Infor的处理流程结束,继续对消息队列中的下一条更新消息Infor进行处理;如果是,则执行步骤3;
步骤3,采用更新消息Infor更新热点缓存;具体更新方法为:
如果为写入新数据的消息,则直接将新数据写入到热点缓存;如果为将旧数据更新为新数据的消息,则将热点缓存的相应旧数据更新为新数据;如果为旧数据删除的消息,则将热点缓存的相应旧数据删除。
优选的,预设置的热点数据判断规则是指:判断数据下次被上层应用程序调用的时间到当前时间的时间间隔,是否大于热点缓存的数据生命周期,如果大于,则数据是非热点数据;如果不大于,则数据是热点数据。
优选的,热点缓存配置清除程序;
清除程序根据热点缓存中各个数据的生命周期,将生命达到生命周期的数据从热点缓存中清除。
优选的,热点缓存配置清除程序;
清除程序对热点缓存中存储的数据性质进行监控,当监控到某个数据为非热点数据时,及时清除热点缓存中非热点数据。
本发明提供的一种实时更新数据库热点数据缓存的方法具有以下优点:
本发明提供一种实时更新数据库热点数据缓存的方法,增加数据库变动的监听线程,在数据库数据变动的时候,如果为热点数据,能及时的更新热点缓存,保证热点数据在数据库和热点缓存的一致性,解决了缓存和数据库信息短暂不一致问题。另外,本发明及时清除热点缓存的非热点数据,减少缓存量,从而及时释放热点缓存空间,保证热点缓存的有效使用。
附图说明
图1为本发明提供的一种实时更新数据库热点数据缓存的方法的详细流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种实时更新数据库热点数据缓存的方法,参考图1,包括以下步骤:
步骤1,数据库配置独立的监听线程,对数据库的状态进行实时监听,当监听到数据库发生更新操作时,将更新消息发布到消息队列;
其中:
更新操作包括:写入操作、修改操作和删除操作;
更新消息包括:如果为写入操作,则更新消息为:写入新数据的消息;如果为修改操作,则更新消息为:将旧数据更新为新数据的消息;如果为删除操作,则更新消息为:将旧数据删除的消息;
步骤2,消息队列为先进先出队列;消息队列配置独立的消息处理程序;
消息处理程序对消息队列中的更新消息进行逐条处理;处理方法为:对于当前消息队列中最先存入的更新消息,表示为:更新消息Infor;消息处理程序读取更新消息Infor,同时将消息队列中的更新消息Infor删除;消息处理程序根据预设置的热点数据判断规则,判断读取到的更新消息Infor是否为热点更新消息,如果不是,则对更新消息Infor的处理流程结束,继续对消息队列中的下一条更新消息Infor进行处理;如果是,则执行步骤3;
本步骤中,预设置的热点数据判断规则是指:判断数据下次被上层应用程序调用的时间到当前时间的时间间隔,是否大于热点缓存的数据生命周期,如果大于,则数据是非热点数据;如果不大于,则数据是热点数据。
步骤3,采用更新消息Infor更新热点缓存;具体更新方法为:
如果为写入新数据的消息,则直接将新数据写入到热点缓存;如果为将旧数据更新为新数据的消息,则将热点缓存的相应旧数据更新为新数据;如果为旧数据删除的消息,则将热点缓存的相应旧数据删除。
热点缓存配置清除程序;清除程序根据热点缓存中各个数据的生命周期,将生命达到生命周期的数据从热点缓存中清除。以及,清除程序对热点缓存中存储的数据性质进行监控,当监控到某个数据为非热点数据时,及时清除热点缓存中非热点数据,从而及时释放热点缓存空间,保证热点缓存的有效使用。
本发明提供一种实时更新数据库热点数据缓存的方法,增加数据库变动的监听线程,在数据库数据变动的时候,如果为热点数据,能及时的更新热点缓存,保证热点数据在数据库和热点缓存的一致性,解决了缓存和数据库信息短暂不一致问题。另外,本发明及时清除热点缓存的非热点数据,减少缓存量,从而及时释放热点缓存空间,保证热点缓存的有效使用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (4)
1.一种实时更新数据库热点数据缓存的方法,其特征在于,包括以下步骤:
步骤1,数据库配置独立的监听线程,对数据库的状态进行实时监听,当监听到数据库发生更新操作时,将更新消息发布到消息队列;
其中:
更新操作包括:写入操作、修改操作和删除操作;
更新消息包括:如果为写入操作,则更新消息为:写入新数据的消息;如果为修改操作,则更新消息为:将旧数据更新为新数据的消息;如果为删除操作,则更新消息为:将旧数据删除的消息;
步骤2,消息队列为先进先出队列;消息队列配置独立的消息处理程序;
消息处理程序对消息队列中的更新消息进行逐条处理;处理方法为:对于当前消息队列中最先存入的更新消息,表示为:更新消息Infor;消息处理程序读取更新消息Infor,同时将消息队列中的更新消息Infor删除;消息处理程序根据预设置的热点数据判断规则,判断读取到的更新消息Infor是否为热点更新消息,如果不是,则对更新消息Infor的处理流程结束,继续对消息队列中的下一条更新消息Infor进行处理;如果是,则执行步骤3;
步骤3,采用更新消息Infor更新热点缓存;具体更新方法为:
如果为写入新数据的消息,则直接将新数据写入到热点缓存;如果为将旧数据更新为新数据的消息,则将热点缓存的相应旧数据更新为新数据;如果为旧数据删除的消息,则将热点缓存的相应旧数据删除。
2.根据权利要求1所述的一种实时更新数据库热点数据缓存的方法,其特征在于,预设置的热点数据判断规则是指:判断数据下次被上层应用程序调用的时间到当前时间的时间间隔,是否大于热点缓存的数据生命周期,如果大于,则数据是非热点数据;如果不大于,则数据是热点数据。
3.根据权利要求1所述的一种实时更新数据库热点数据缓存的方法,其特征在于,热点缓存配置清除程序;
清除程序根据热点缓存中各个数据的生命周期,将生命达到生命周期的数据从热点缓存中清除。
4.根据权利要求1所述的一种实时更新数据库热点数据缓存的方法,其特征在于,热点缓存配置清除程序;
清除程序对热点缓存中存储的数据性质进行监控,当监控到某个数据为非热点数据时,及时清除热点缓存中非热点数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477554.7A CN114138807B (zh) | 2021-12-06 | 2021-12-06 | 一种实时更新数据库热点数据缓存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477554.7A CN114138807B (zh) | 2021-12-06 | 2021-12-06 | 一种实时更新数据库热点数据缓存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138807A true CN114138807A (zh) | 2022-03-04 |
CN114138807B CN114138807B (zh) | 2024-04-12 |
Family
ID=80384244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111477554.7A Active CN114138807B (zh) | 2021-12-06 | 2021-12-06 | 一种实时更新数据库热点数据缓存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138807B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242671A (zh) * | 2022-07-05 | 2022-10-25 | 中国电子科技集团公司第十四研究所 | 一种基于redis的消息监听方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630823A (zh) * | 2014-11-04 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 基于分布式系统的缓存数据的监控方法、装置和系统 |
CN106354851A (zh) * | 2016-08-31 | 2017-01-25 | 广州市乐商软件科技有限公司 | 数据缓存方法及装置 |
CN111221828A (zh) * | 2018-11-26 | 2020-06-02 | 福建省华渔教育科技有限公司 | 一种提高数据库数据和缓存数据一致性的方法及终端 |
CN111291079A (zh) * | 2020-02-20 | 2020-06-16 | 京东数字科技控股有限公司 | 一种数据的查询方法和装置 |
CN113448977A (zh) * | 2021-07-13 | 2021-09-28 | 中国银行股份有限公司 | 基于数据库Binlog的分布式缓存更新方法及装置 |
-
2021
- 2021-12-06 CN CN202111477554.7A patent/CN114138807B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630823A (zh) * | 2014-11-04 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 基于分布式系统的缓存数据的监控方法、装置和系统 |
CN106354851A (zh) * | 2016-08-31 | 2017-01-25 | 广州市乐商软件科技有限公司 | 数据缓存方法及装置 |
CN111221828A (zh) * | 2018-11-26 | 2020-06-02 | 福建省华渔教育科技有限公司 | 一种提高数据库数据和缓存数据一致性的方法及终端 |
CN111291079A (zh) * | 2020-02-20 | 2020-06-16 | 京东数字科技控股有限公司 | 一种数据的查询方法和装置 |
CN113448977A (zh) * | 2021-07-13 | 2021-09-28 | 中国银行股份有限公司 | 基于数据库Binlog的分布式缓存更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
李诗诗;方寿海;: "移动数据库缓存同步更新机制", 煤炭技术, no. 10, 10 October 2010 (2010-10-10), pages 172 - 174 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242671A (zh) * | 2022-07-05 | 2022-10-25 | 中国电子科技集团公司第十四研究所 | 一种基于redis的消息监听方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114138807B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10133679B2 (en) | Read cache management method and apparatus based on solid state drive | |
CN103617131B (zh) | 一种实现数据缓存的方法 | |
CN103246696A (zh) | 高并发数据库的访问方法及应用于多服务器系统的方法 | |
CN110109886B (zh) | 分布式文件系统的文件存储方法及分布式文件系统 | |
US20180196619A1 (en) | Information processing system, storage control apparatus, storage control method, and storage control program | |
KR101766790B1 (ko) | 메인 메모리 데이터 베이스를 관리 하기 위한 방법 및 컴퓨팅 장치 | |
CN103514112B (zh) | 一种数据存储方法及系统 | |
WO2021238252A1 (zh) | 一种分布式文件系统文件局部随机预读的方法和设备 | |
CN112463730B (zh) | 一种存储海量小文件分级优化的方法、系统及介质 | |
CN105095495B (zh) | 一种分布式文件系统缓存管理方法和系统 | |
CN105786410A (zh) | 一种提高数据存储系统处理速度的方法及数据存储系统 | |
CN105302493B (zh) | 一种混合存储阵列中ssd缓存的换入换出控制方法及系统 | |
CN114138807A (zh) | 一种实时更新数据库热点数据缓存的方法 | |
CN109145163A (zh) | 区块链数据缩容方法、装置及存储介质 | |
CN110515726A (zh) | 一种数据库负载均衡方法与装置 | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
JP4625675B2 (ja) | ストレージ装置のリソース割り当て方法及びストレージ装置 | |
CN107180118A (zh) | 一种文件系统缓存数据管理方法及装置 | |
WO2013046342A1 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
CN103729301B (zh) | 数据处理方法和装置 | |
JP6225606B2 (ja) | データベース監視装置、データベース監視方法、並びにコンピュータ・プログラム | |
CN103491124A (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 | |
CN102779017B (zh) | 一种固态盘中数据缓存区的控制方法 | |
CN110413689B (zh) | 一种内存数据库的多节点数据同步方法与装置 | |
CN106484334A (zh) | 一种释放预读资源的方法及装置 |
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 |