CN111611287A - 一种缓存数据更新方法 - Google Patents
一种缓存数据更新方法 Download PDFInfo
- Publication number
- CN111611287A CN111611287A CN202010551523.0A CN202010551523A CN111611287A CN 111611287 A CN111611287 A CN 111611287A CN 202010551523 A CN202010551523 A CN 202010551523A CN 111611287 A CN111611287 A CN 111611287A
- Authority
- CN
- China
- Prior art keywords
- data
- cache data
- current
- cache
- query method
- 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
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/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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
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)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开的缓存数据更新方法,涉及计算机技术领域,获取各个数据查询方法的注解,根据该注解,确定当前缓存数据中各条数据的主关键字、副关键字及对应的业务领域类型并将各条缓存数据的主关键字、副关键字及对应的业务领域类型存储于第一内存容器,获取各个数据前置查询方法的类名和方法名,将类名和方法名存储于第二内存容器,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法,若是,则根据数据前置查询方法的方法名,确定当前磁盘数据变更方法所采用的数据前置查询方法,实现了对多个以多个关键字存储同一字段值的缓存数据的批量更新及缓存数据与磁盘数据实时一致的效果,提高了缓存数据的准确性、内存的有效使用率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种缓存数据更新方法。
背景技术
随着科技的发展,信息数字时代的逐步来临,如何提升系统并发瓶颈成为业务增长的关键一环。由于磁盘读写速度和内存读写速度差异巨大,所以预先将部分热点数据存储至内存中,对于数据的读写性能有很大帮助。
由于缓存数据和磁盘数据的同步越来越被重视,为了提高内存的有效使用率及保证缓存数据的有效性,所以必须对缓存数据进行实时更新,使留下来的缓存数据不仅可被系统使用,而且能够保证数据的准确性。所以说,有效地更新缓存数据,是保证缓存数据有效性的关键,也保证了内存的有效使用率。
对于缓存数据的更新,目前主要有以下几种方案:
(1)在更新磁盘数据的代码中,加入更新多个缓存数据的代码;
(2)利用开源组件Spring Cache,在更新磁盘数据的代码上配置多条的缓存数据的关键字;
(3)为缓存数据设置过期时间,自动删除到期的缓存数据。
前两种方法均通需要过手工编写多个缓存数据的关键字,使得缓存数据的使用率有效性得到缓解,但由于每条缓存数据代码编写的过程繁重,且随着业务系统越来越庞大,缓存数据的数据量也越来越大,每条缓存数据对应的关键字也越来越多,仅凭人的记忆,无法有效地去维护,缓存数据的有效性尚不能达到最优的效果,严重影响着业务系统缓存数据的真实有效性。
第二种方案不能根据返回的数据,实时更新缓存数据,也不能解决由于待更新数据对应的字段值是缓存数据副关键字而导致命中失败的问题。
第三种方式无法实现缓存数据与磁盘数据实时一致的效果。
所以,如何设计一种缓存数据更新方法以提高内存的有效使用率及缓存数据的准确性,对业务系统的发展意义重大。
发明内容
为解决现有技术的不足,本发明实施例提供了一种缓存数据更新方法,该方法包括以下步骤:
利用扫描器,获取各个数据查询方法的注解;
根据所述注解,确定当前缓存数据中各条数据的主关键字、副关键字及对应的业务领域类型并将各条缓存数据的主关键字、副关键字及对应的业务领域类型存储于第一内存容器;
利用扫描器,扫描各个数据前置查询方法上的注解并根据所述注解,获取各个数据前置查询方法的类名和方法名,将所述类名和所述方法名存储于第二内存容器;
判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法,若是,则根据数据前置查询方法的方法名,确定当前磁盘数据变更方法所采用的数据前置查询方法;
执行当前磁盘数据变更方法,得到相应的返回值,根据所述返回值的类型,从所述第一内存容器中获取所述返回值对应的业务领域类型;
根据所述业务领域类型,从第二内存容器中获取相应的数据前置查询方法;
执行所述数据前置查询方法,得到当前缓存数据中需要更新的数据,生成数据集合;
根据所述数据集合,对当前缓存数据进行更新。
优选地,根据所述数据集合,对当前缓存数据进行更新包括:
从当前缓存数据中获取与所述数据集合匹配的缓存数据并删除所述缓存数据;
执行当前磁盘数据变更方法,将返回的数据写入当前缓存数据。
优选地,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法包括:
若否,则直接执行当前磁盘数据变更方法。
本发明实施例提供的缓存数据更新方法具有以下有益效果:
在执行磁盘数据变更方法前,判断是否需要执行数据前置查询方法并对缓存数据进行分类,实现了对多个以多个关键字存储同一字段值的缓存数据的批量更新及缓存数据与磁盘数据实时一致的效果,提高了缓存数据的准确性、内存的有效使用率及数据同步效率。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明实施例提供的缓存数据更新方法包括以下步骤:
S101,利用扫描器,获取各个数据查询方法的注解。
S102,根据该注解,确定当前缓存数据中各条数据的主关键字、副关键字及对应的业务领域类型并将各条缓存数据的主关键字、副关键字及对应的业务领域类型存储于第一内存容器。
作为一个具体的实施例,业务领域类型包括个人信息类、企业信息类及订单信息类。
其中,针对个人信息类缓存数据,主关键字为“用户”,副关键字为用户的编号及身份证号。
S103,利用扫描器,扫描各个数据前置查询方法上的注解并根据该注解,获取各个数据前置查询方法的类名和方法名,将类名和方法名存储于第二内存容器。
S104,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法,若是,则根据数据前置查询方法的方法名,确定当前磁盘数据变更方法所采用的数据前置查询方法。
S105,执行当前磁盘数据变更方法,得到相应的返回值,根据返回值的类型,从第一内存容器中获取返回值对应的业务领域类型。
S106,根据业务领域类型,从第二内存容器中获取相应的数据前置查询方法。
S107,执行数据前置查询方法,得到当前缓存数据中需要更新的数据,生成数据集合;
S108,根据数据集合,对当前缓存数据进行更新。
可选地,根据数据集合,对当前缓存数据进行更新包括:
从当前缓存数据中获取与所述数据集合匹配的缓存数据并删除缓存数据;
执行当前磁盘数据变更方法,将返回的数据写入当前缓存数据。
可选地,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法包括:
若否,则直接执行当前磁盘数据变更方法。
本发明实施例提供的缓存数据更新方法,利用扫描器,获取各个数据查询方法的注解,根据该注解,确定当前缓存数据中各条数据的主关键字、副关键字及对应的业务领域类型并将各条缓存数据的主关键字、副关键字及对应的业务领域类型存储于第一内存容器,利用扫描器,扫描各个数据前置查询方法上的注解并根据,注解,获取各个数据前置查询方法的类名和方法名,将类名和方法名存储于第二内存容器,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法,若是,则根据数据前置查询方法的方法名,确定当前磁盘数据变更方法所采用的数据前置查询方法,执行当前磁盘数据变更方法,得到相应的返回值,根据返回值的类型,从第一内存容器中获取返回值对应的业务领域类型,根据业务领域类型,从第二内存容器中获取相应的数据前置查询方法,执行数据前置查询方法,得到当前缓存数据中需要更新的数据,生成数据集合,根据数据集合,对当前缓存数据进行更新,实现了对多个以多个关键字存储同一字段值的缓存数据的批量更新及缓存数据与磁盘数据实时一致的效果,提高了缓存数据的准确性、内存的有效使用率及数据同步效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (3)
1.一种缓存数据更新方法,其特征在于,包括:
利用扫描器,获取各个数据查询方法的注解;
根据所述注解,确定当前缓存数据中各条数据的主关键字、副关键字及对应的业务领域类型并将各条缓存数据的主关键字、副关键字及对应的业务领域类型存储于第一内存容器;
利用扫描器,扫描各个数据前置查询方法上的注解并根据所述注解,获取各个数据前置查询方法的类名和方法名,将所述类名和所述方法名存储于第二内存容器;
判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法,若是,则根据数据前置查询方法的方法名,确定当前磁盘数据变更方法所采用的数据前置查询方法;
执行当前磁盘数据变更方法,得到相应的返回值,根据所述返回值的类型,从所述第一内存容器中获取所述返回值对应的业务领域类型;
根据所述业务领域类型,从第二内存容器中获取相应的数据前置查询方法;
执行所述数据前置查询方法,得到当前缓存数据中需要更新的数据,生成数据集合;
根据所述数据集合,对当前缓存数据进行更新。
2.根据权利要求1所述的缓存数据更新方法,其特征在于,根据所述数据集合,对当前缓存数据进行更新包括:
从当前缓存数据中获取与所述数据集合匹配的缓存数据并删除所述缓存数据;
执行当前磁盘数据变更方法,将返回的数据写入当前缓存数据。
3.根据权利要求1所述的缓存数据更新方法,其特征在于,判断当前磁盘数据变更方法的注解中是否标注了数据前置查询方法包括:
若否,则直接执行当前磁盘数据变更方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551523.0A CN111611287B (zh) | 2020-06-17 | 2020-06-17 | 一种缓存数据更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551523.0A CN111611287B (zh) | 2020-06-17 | 2020-06-17 | 一种缓存数据更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611287A true CN111611287A (zh) | 2020-09-01 |
CN111611287B CN111611287B (zh) | 2023-10-03 |
Family
ID=72200604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010551523.0A Active CN111611287B (zh) | 2020-06-17 | 2020-06-17 | 一种缓存数据更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611287B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294088A1 (en) * | 2005-06-27 | 2006-12-28 | International Business Machines Corporation | Method, system, and computer program product for caching dynamically generated queries |
CN107133234A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 缓存数据更新的方法、装置及系统 |
CN109981774A (zh) * | 2019-03-22 | 2019-07-05 | 联想(北京)有限公司 | 数据缓存方法和数据缓存装置 |
-
2020
- 2020-06-17 CN CN202010551523.0A patent/CN111611287B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294088A1 (en) * | 2005-06-27 | 2006-12-28 | International Business Machines Corporation | Method, system, and computer program product for caching dynamically generated queries |
CN107133234A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 缓存数据更新的方法、装置及系统 |
CN109981774A (zh) * | 2019-03-22 | 2019-07-05 | 联想(北京)有限公司 | 数据缓存方法和数据缓存装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111611287B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199366B (zh) | 数据表处理方法、装置及设备 | |
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
US8924365B2 (en) | System and method for range search over distributive storage systems | |
US6389429B1 (en) | System and method for generating a target database from one or more source databases | |
US7467163B1 (en) | System and method to manipulate large objects on enterprise server data management system | |
CN104866434A (zh) | 面向多应用的数据存储系统和数据存储、调用方法 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US8473955B2 (en) | Reducing processing overhead and storage cost by batching task records and converting to audit records | |
JP2007213592A (ja) | 文字処理装置、方法、プログラムおよび記録媒体 | |
CA2326805A1 (en) | Method and apparatus for deleting data in a database | |
US6047296A (en) | Comprehensive method of resolving nested forward references in electronic data streams within defined resolution scopes | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
US20090030880A1 (en) | Model-Based Analysis | |
CN112328600A (zh) | 一种电子优惠券管理方法 | |
US20080005077A1 (en) | Encoded version columns optimized for current version access | |
CN112507067B (zh) | 一种缓存插入式注解器及注解方法 | |
CN100527131C (zh) | 一种ims数据库互动式访问方法和工具 | |
CN101419544A (zh) | 一种计算机程序代码自动生成器 | |
Ciszak | Application of clustering and association methods in data cleaning | |
Ding et al. | Efficient currency determination algorithms for dynamic data | |
WO2012167187A1 (en) | Quick access to hierarchical data via an ordered flat file | |
CN111611287B (zh) | 一种缓存数据更新方法 | |
Rodrìguez | The updating of ISBD and its transformation | |
CN116432222A (zh) | 一种数据安全标识提取方法、系统、设备及介质 | |
US8117170B2 (en) | Transient range versioning based on redirection |
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 |