CN116383250A - 一种生成缓存的方法、存储介质 - Google Patents
一种生成缓存的方法、存储介质 Download PDFInfo
- Publication number
- CN116383250A CN116383250A CN202310260370.8A CN202310260370A CN116383250A CN 116383250 A CN116383250 A CN 116383250A CN 202310260370 A CN202310260370 A CN 202310260370A CN 116383250 A CN116383250 A CN 116383250A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- generating
- interface
- query
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000010200 validation analysis Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 6
- 238000011161 development Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000009417 prefabrication Methods 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/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
-
- 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
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种生成缓存的方法、存储介质,属于数据处理技术领域。该生成缓存的方法,包括以下步骤:控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。该方法只需要接入缓存组件即可实现快速查询,而且确保了缓存和数据库数据的一致性。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种生成缓存的方法、存储介质。
背景技术
在日常开发的很多场景,由于受限于硬盘IO的性能或者自身业务***的数据处理和获取非常耗时,当我们发现数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶颈出现,严重的时候会造成整个***的雪崩。缓存的作用就是将这些来自不易的数据保存在内存中,当有其他线程或者客户端需要查询相同的数据资源时,直接从缓存的内存块中返回数据,这样不但可以提高***的响应时间,同时也可以节省对这些数据的处理流程的资源消耗,整体上来说,***性能和稳定性会有质的提升。
目前的数据处理中可能会出现缓存穿透、缓存雪崩等问题,会出现缓存和数据库数据不一致的问题。而且每次开发都需要考虑这些问题,一但出现漏洞,会导致整个***的不可用。这样会降低开发效率、提升测试维护成本、降低***稳定性和可用性。
发明内容
本发明的目的在于克服上述技术不足,提供一种生成缓存的方法、存储介质,解决现有技术中的缓存和数据库数据不一致的技术问题。
为达到上述技术目的,本发明的技术方案提供一种生成缓存的方法,包括以下步骤:
控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。
进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数。
进一步地,所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间。
进一步地,所述缓存查询请求包括缓存关键词和相关请求参数。
进一步地,还包括将生成的缓存数据写入缓存队列。
进一步地,所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
进一步地,所述线程根据缓存队列中的关键词和相关的请求参数去调用相应的生成缓存接口,若生成成功则生成刷新缓存;若生成失败则删除该关键词和相关的请求参数。
进一步地,访问率高的生成缓存接口优先生成缓存。
进一步地,所述生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。
此外,本发明还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成缓存的方法的步骤。
与现有技术相比,本发明的有益效果包括:本发明提出的生成缓存的方法,控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层,可以只需要接入缓存组件即可实现快速查询,而且确保了缓存和数据库数据的一致性。
附图说明
图1是本发明实施例1中生成缓存的方法的缓存生成和更新流程图。
具体实施方式
本具体实施方式提供了一种生成缓存的方法,包括以下步骤:
控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层;进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数;所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间;所述缓存查询请求包括缓存关键词和相关请求参数;所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
在某些实施例中,还包括将生成的缓存数据写入缓存队列。
在某些实施例中,所述线程根据缓存队列中的关键词和相关的请求参数去调用相应的生成缓存接口,若生成成功则生成刷新缓存;若生成失败则删除该关键词和相关的请求参数,进一步地,访问率高的生成缓存接口优先生成缓存。
在某些实施例中,所述生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。
本具体实施方式还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成缓存的方法的步骤。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前的APP服务接口底层逻辑主要用来统计和查询,由于处理的数据量大,查询的流程长,响应时间达到了秒级别,为了更好的用户体验,必须实现毫秒级别的接口响应需求。
业务数据统计时间维度为T(上一个整点)和T-1(昨天)。
由于数据的统计时间不是实时的(T可以每个整点生成上一个小时的缓存,T-1的维度可以每天0点生成缓存),所以可以引入缓存来提高服务接口响应速度。
缓存的开发不增加业务开发的工作量,不侵入业务代码,不影响业务的原有查询逻辑。
缓存统一生成,统一维护。
业务代码使用缓存简单可靠。
让使用频繁的接口优先生成缓存。
多种方式触发更新缓存(定时任务生成缓存,代码调用生成缓存)。
方案分析:
如上述业务场景和实现需求,使用传统的方案难以实现,若通过使用该缓存组件内置的多线程消费队列进行缓存的更新和生成则能够实现。
具体技术方案如下:
结合图1,本实施例提出一种生成缓存的方法,包括以下步骤:
控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层;进一步地,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数;所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间,保证队列里面的缓存关键词KEY永不过期;所述缓存查询请求包括缓存关键词和相关请求参数;所述缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
需要说明的是,缓存接口是数据库查询的端口。
在上述实施例的基础上,本实施例还包括将生成的缓存数据写入缓存队列。
在上述实施例的基础上,本实施例中的缓存组件包括多个线程,多个线程构成线程池,通过多个所述线程处理所述缓存队列,缓存队列构成排序集合,排序集合做出缓存关键词KEY的访问优先级排名,然后会按排名依次写入保持KEY集合,最后异步线程对KEY进行持久化,由于排名优先级由高到低的,所以去处理消费缓存队列就到达了访问率高的接口优先生成缓存。线程拿到缓存关键词KEY和缓存关键词KEY相关的请求参数,就会去调用应用程序提供的生成缓存接口,失败将删除缓存关键词KEY和缓存,成功刷新缓存。如果生成失败,说明该接口实现有BUG,从缓存队列里面清除该KEY和删除缓存数据,删除目的为了防止错误的KEY在定时任务里面循环调用。
在上述实施例的基础上,本实施例中访问率高的生成缓存接口优先生成缓存。
在上述实施例的基础上,本实施例中生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。组件会预制一些业务数据的判断逻辑,应用程序也可以通过检查接口来进行扩展。
本申请提出的生成方法的优势比较:
开发测试层面对比结果:
1.传统缓存方案:每一个模块业务都要做一次缓存业务开发,需要重复开发。
2.新的缓存组件方案:如果该组件内置功能满足业务需求,只需要接入组件,引入SDK,无需开发缓存,开箱即用。如果不满足,可以通过插件的模式为该业务开发对应的缓存功能(由于是插件开发,可以使用很多预制方案,开发工作量少),只需要一次开发,多模块使用。
3.本APP服务接口278个。下面看下数据指标对比:
3.接口运行层面对比(本实施例使用多线程消费队列进行缓存的更新和生成内置方案):
缓存过期,缓存生成性能对比:
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
Claims (10)
1.一种生成缓存的方法,其特征在于,包括以下步骤:
控制器层收到查询请求,之后调用缓存组件查询缓存接口;若缓存存在,则返回查询数据,若缓存不存在,则调用生成缓存接口从数据库查询数据并生成缓存数据,之后写入缓存,返回缓存数据至控制器层。
2.根据权利要求1所述的生成缓存的方法,其特征在于,调用缓存组件查询缓存接口之后还包括记录相同缓存的调用次数。
3.根据权利要求1所述的生成缓存的方法,其特征在于,所述写入缓存的同时还包括将缓存的过期时间设置为远大于定时任务触发的周期时间。
4.根据权利要求1所述的生成缓存的方法,其特征在于,所述缓存查询请求包括缓存关键词和相关请求参数。
5.根据权利要求1所述的生成缓存的方法,其特征在于,还包括将生成的缓存数据写入缓存队列。
6.根据权利要求5所述的生成缓存的方法,其特征在于,缓存组件包括多个线程,通过多个所述线程处理所述缓存队列。
7.根据权利要求6所述的生成缓存的方法,其特征在于,所述线程根据缓存队列中的关键词和相关的请求参数去调用相应的生成缓存接口,若生成成功则生成刷新缓存;若生成失败则删除该关键词和相关请求参数。
8.根据权利要求7所述的生成缓存的方法,其特征在于,访问率高的生成缓存接口优先生成缓存。
9.根据权利要求4所述的生成缓存的方法,其特征在于,所述生成缓存接口生成缓存数据前还需要提供请求参数的合法效验;所述合法效验包括:空值判断、电话号码的合理性、具体业务数据的合理性效验中的一种或者多种。
10.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的生成缓存的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310260370.8A CN116383250A (zh) | 2023-03-07 | 2023-03-07 | 一种生成缓存的方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310260370.8A CN116383250A (zh) | 2023-03-07 | 2023-03-07 | 一种生成缓存的方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383250A true CN116383250A (zh) | 2023-07-04 |
Family
ID=86964866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310260370.8A Pending CN116383250A (zh) | 2023-03-07 | 2023-03-07 | 一种生成缓存的方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383250A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及*** |
CN103399856A (zh) * | 2013-07-01 | 2013-11-20 | 北京科东电力控制***有限责任公司 | 面向scada***的爆发式数据缓存处理***及其方法 |
CN105306457A (zh) * | 2015-09-30 | 2016-02-03 | 努比亚技术有限公司 | 数据缓存装置及方法 |
CN106294205A (zh) * | 2015-05-15 | 2017-01-04 | 北京国双科技有限公司 | 缓存数据处理方法及装置 |
CN109558445A (zh) * | 2018-12-04 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种接口查询方法和可读存储介质 |
CN111177032A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 缓存空间申请方法、***、装置及计算机可读存储介质 |
CN113377289A (zh) * | 2021-06-01 | 2021-09-10 | 北京齐尔布莱特科技有限公司 | 一种缓存管理方法、***、计算设备及可读存储介质 |
CN113836162A (zh) * | 2021-11-16 | 2021-12-24 | 湖北省楚建易网络科技有限公司 | 一种业务解耦并实现多级缓存的自动化更新的方法及装置 |
CN114138840A (zh) * | 2021-12-08 | 2022-03-04 | 中国建设银行股份有限公司 | 数据查询方法、装置、设备及存储介质 |
CN114398372A (zh) * | 2022-01-13 | 2022-04-26 | 北京沃东天骏信息技术有限公司 | 一种数据缓存方法和装置 |
CN114860212A (zh) * | 2022-05-10 | 2022-08-05 | 航天新通科技有限公司 | 一种可扩展缓存访问方法、***、装置及存储介质 |
CN115687402A (zh) * | 2022-06-10 | 2023-02-03 | 四川虹美智能科技有限公司 | 一种实现缓存数据和数据库数据一致的方法 |
-
2023
- 2023-03-07 CN CN202310260370.8A patent/CN116383250A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及*** |
CN103399856A (zh) * | 2013-07-01 | 2013-11-20 | 北京科东电力控制***有限责任公司 | 面向scada***的爆发式数据缓存处理***及其方法 |
CN106294205A (zh) * | 2015-05-15 | 2017-01-04 | 北京国双科技有限公司 | 缓存数据处理方法及装置 |
CN105306457A (zh) * | 2015-09-30 | 2016-02-03 | 努比亚技术有限公司 | 数据缓存装置及方法 |
CN109558445A (zh) * | 2018-12-04 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种接口查询方法和可读存储介质 |
CN111177032A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 缓存空间申请方法、***、装置及计算机可读存储介质 |
CN113377289A (zh) * | 2021-06-01 | 2021-09-10 | 北京齐尔布莱特科技有限公司 | 一种缓存管理方法、***、计算设备及可读存储介质 |
CN113836162A (zh) * | 2021-11-16 | 2021-12-24 | 湖北省楚建易网络科技有限公司 | 一种业务解耦并实现多级缓存的自动化更新的方法及装置 |
CN114138840A (zh) * | 2021-12-08 | 2022-03-04 | 中国建设银行股份有限公司 | 数据查询方法、装置、设备及存储介质 |
CN114398372A (zh) * | 2022-01-13 | 2022-04-26 | 北京沃东天骏信息技术有限公司 | 一种数据缓存方法和装置 |
CN114860212A (zh) * | 2022-05-10 | 2022-08-05 | 航天新通科技有限公司 | 一种可扩展缓存访问方法、***、装置及存储介质 |
CN115687402A (zh) * | 2022-06-10 | 2023-02-03 | 四川虹美智能科技有限公司 | 一种实现缓存数据和数据库数据一致的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247808B (zh) | 一种分布式NewSQL数据库***及图片数据查询方法 | |
CN102495857B (zh) | 一种分布式数据库的负载均衡方法 | |
US7359890B1 (en) | System load based adaptive prefetch | |
US20070299810A1 (en) | Autonomic application tuning of database schema | |
CN110096334B (zh) | 缓存处理方法、装置、设备及计算机可读存储介质 | |
US10404823B2 (en) | Multitier cache framework | |
US20240054128A1 (en) | Automatic database query load assessment and adaptive handling | |
CN111538463A (zh) | 一种实现内存数据库持久化的方法 | |
CN107888687B (zh) | 一种基于分布式存储***的代理客户端存储加速方法及*** | |
CN101067820A (zh) | 预取对象的方法 | |
CN106202459A (zh) | 虚拟化环境下的关系型数据库存储性能优化方法及*** | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN114138792A (zh) | 一种Key-value分离存储方法及*** | |
CN113051271A (zh) | 一种冷热数据分离方法、装置及其设备 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN110716940A (zh) | 一种增量式数据存取*** | |
US20230153317A1 (en) | Method for scheduling offloading snippets based on large amount of dbms task computation | |
CN107590199B (zh) | 一种面向内存的多线程数据库设计方法 | |
CN116383250A (zh) | 一种生成缓存的方法、存储介质 | |
CN111666045A (zh) | 基于Git***的数据处理方法、***、设备及存储介质 | |
US7181491B2 (en) | Intelligent data pool management engine | |
CN106934044B (zh) | 一种数据处理方法及装置 | |
CN110895539A (zh) | 一种应用***的二级缓存方法 | |
US11941074B2 (en) | Fetching a query result using a query filter |
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 |