CN113688155A - 一种预防缓存雪崩的系统 - Google Patents
一种预防缓存雪崩的系统 Download PDFInfo
- Publication number
- CN113688155A CN113688155A CN202110894079.7A CN202110894079A CN113688155A CN 113688155 A CN113688155 A CN 113688155A CN 202110894079 A CN202110894079 A CN 202110894079A CN 113688155 A CN113688155 A CN 113688155A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- time
- weight
- 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
- 230000032683 aging Effects 0.000 claims abstract description 15
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001550 time effect Effects 0.000 description 1
- 230000000007 visual effect 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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Abstract
本发明公开了一种预防缓存雪崩的系统,属于缓存安全设置技术领域,要解决的技术问题为如何解决设置缓存的实效时间、以避免出现大量缓存数据时效的场景。包括:数据查询解析器,用于记录各个监控表的数据查询次数,将满足预定查询频率的数据作为高频查询数据,并将高频处查询数据进行缓存;数据更新解析器,在更新某一条高频查询数据时所述数据更新解析器用于根据具体的场景来进行数据更新;缓存时间处理器器,用于根据数据的权重计算数据需要被设置的失效时间,所述数据的权重包括主观权重和客观权重,所述主观权重为人为设置的权重系数,所述客观权重为通过程序采集的权重系数。
Description
技术领域
本发明涉及缓存安全设置技术领域,具体地说是一种预防缓存雪崩的系统。
背景技术
随着互联网行业的迅猛发展,越来越多的应用出现在大家的视野中。一个应用要想吸引到用户,除了用户关心的使用功能之外,应用的响应效率也是一个非常重要的因素,因为它与用户的体验度紧密相连。目前来提升应用的响应效率大家往往都采用缓存数据的方式,即将经常使用到且更新频率较低的数据缓存起来,用户在请求这些数据的时候,直接从缓存中将获取数据,然后将相应结果反馈给用户。与传统方式从数据库中读取数据然后再反馈给用户相比,缓存部分数据的方式的确能够提升应用的响应效率。但是缓存中的数据是存在时效性的,当在某一个时刻出现大量缓存数据时效的情况下,请求依旧会通往数据库,从数据库中获取相应的信息,这个过程中会给数据库带来巨大的压力,设置会出现数据库down掉的风险,最终会导致应用不可用。
基于上述分析,如何解决设置缓存的实效时间、以避免出现大量缓存数据时效的场景,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供一种预防缓存雪崩的系统,来解决如何解决设置缓存的实效时间、以避免出现大量缓存数据时效的场景的技术问题。
本发明的一种预防缓存雪崩的系统,用于根据已有的缓存时效时间动态计算当前数据的具体时效时间,并通过人为权重系数控制时效时间,所述系统包括:
数据查询解析器,所述数据查询解析器用于记录各个监控表的数据查询次数,将满足预定查询频率的数据作为高频查询数据,并将高频处查询数据进行缓存;
数据更新解析器,所述数据更新解析器作用于被缓存的高频查询数据,在更新某一条高频查询数据时所述数据更新解析器用于根据具体的场景来进行数据更新;
缓存时间处理器器,所述缓存时间处理器用于根据数据的权重计算数据需要被设置的失效时间,所述数据的权重包括主观权重和客观权重,所述主观权重为人为设置的权重系数,所述客观权重为通过程序采集的权重系数。
作为优选,所述监控表的表信息通过管理员预先手动配置;
所述数据查询解析器用于记录管理员预先手动配置的监控表的数据查询次数。
作为优选,如果被更新的数据单独存放于缓存中,所述数据更新解析器用于直接从缓存中获取具体的数据并将获取的数据更新为最新数据,并调用缓存时间处理器获取应设置的缓存时效时间,将最新的数据进行缓存。
作为优选,如果被更新的数据与其他数据共同存储在一个key对应的value中,所述数据更新解析器用于按照当前数据在列表的索引位置进行更新。
作为优选,所述人为设置的权重系数为管理员手动设置的监控表的数据数据的权重系数,权重系数越大表示所述表数据被设置的缓存失效时间越长;
所述客观权重系数为通过数据的访问频率计算得出的系数,数据被访问的频率越高表示所述数据的客观权重系数越大。
作为优选,所述缓存时间处理器器用于根据数据的权重计算数据需要被设置的失效时间,包括如下操作:
设置主观权重和客观权重在权重系数体系中所占的百分比,以计算出目标数据最终的权重系数;
根据所述权重系数设置缓存数据失效时间,并通过缓存时间处理器记录所述缓存失效时间;
缓存时间处理器在计算出缓存数据失效时间后,从当前已存储的缓存数据失效时间集合中检索当前缓存数据失效时间出现的次数,如果所述缓存数据失效时间出现的次数较高,再次计算缓存数据失效时间,同时缓存时间处理器启动一个失效时间倒计时的程序,在缓存失效时间到达时,通过所述程序主动提交一个重新计算所述缓存数据失效时间的请求,由数据更新解析器重新刷新所述缓存数据。
作为优选,所述数据查询解析器用于启动一个线程,并通过所述线程处理失效数据刷新的请求。
作为优选,通过所述程序主动提交一个重新计算所述缓存数据失效时间的请求,由数据更新解析器中线程重新刷新所述缓存数据。
本发明的一种预防缓存雪崩的系统具有以下优点:
1、通过一系列计算优化设置缓存的失效时间,在很大程度上避免了因大批量缓存数据集体失效,造成数据请求路由到底层数据库,从而给数据库造成巨大压力,设置服务宕机的风险;
2、启动一个线程用来处理失效数据刷新的请求。这种主动刷新缓存数据的机制,能够避免因缓存数据失效造成的大量数据请求被放行到数据库的场景;
3、开发者不再关注与如何设置缓存时效时间,只注重于业务开发即可,减少其工作量;
4、适用于各种缓存场景,有良好的适用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为一种预防缓存雪崩的系统的工作流程。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供一种预防缓存雪崩的系统,用于解决如何解决设置缓存的实效时间、以避免出现大量缓存数据时效的场景的技术问题。
实施例:
本发明的一种预防缓存雪崩的系统,用于根据已有的缓存时效时间动态计算当前数据的具体时效时间,并通过人为权重系数控制时效时间,该系统包括数据查询解析器、数据更新解析器和缓存时间处理器,数据查询解析器用于记录各个监控表的数据查询次数,将满足预定查询频率的数据作为高频查询数据,并将高频处查询数据进行缓存;数据更新解析器作用于被缓存的高频查询数据,在更新某一条高频查询数据时所述数据更新解析器用于根据具体的场景来进行数据更新;缓存时间处理器用于根据数据的权重计算数据需要被设置的失效时间,数据的权重包括主观权重和客观权重,主观权重为人为设置的权重系数,客观权重为通过程序采集的权重系数。
监控表的表信息通过管理员预先手动配置,数据查询解析器用于记录管理员预先手动配置的监控表的数据查询次数。
数据查询解析器主要是用来记录不同表数据的查询次数,它能够直观的比较出那些表数据查询查询频率高,对于查询频率较高的数据,是可以将其存放到缓存中,提升数据库的查询效率。企业级的项目中往往存在很多的表数据,数据查询解析器如果监控所有的表数据,是得不偿失的。因此有的业务数据并非关键业务数据,其访问量必然很低。为了解决这种场景,可以手动配置需要监控的表信息,数据查询解析器只会记录事先配置的表的查询次数。
被缓存的数据在有更新操作时需要将最新的数据重新刷新到缓存中,这样才能保证用户看到的是最新的且正确的数据。数据更新解析器在更新某一条数据时需要根据具体的场景来进行数据更新。
被更新的数据时单独存放在缓存中,那么数据更新解析器直接从缓存中获取到具体的数据然后将其更新成最新的数据,调用缓存时间处理器获取应该设置的缓存失效时间,将最新的数据放置在缓存中即可。
被更新的数据与其他的数据共同存储在某一个key对应的value中,那么按照当前数据在列表中的索引位置进行更新即可。这样能够避免大量数据被写入到内存中,造成内存溢出的风险。
数据更新解析器除了将需要更新的数据重新刷入到缓存中之外,还会启动一个线程用来处理失效数据刷新的请求。这种主动刷新缓存数据的机制,能够避免因缓存数据失效造成的大量数据请求被放行到数据库的场景。
缓存时间处理器的主要作用是根据数据的权重来计算数据需要被设置的失效时间。这里的数据权重包括了主观权重和客观权重,即人为设置的权重系数以及通过程序采集到的权重系数。
人为权重系数指的管理员手动设置的表数据的权重系数,权重系数越大表示此表数据被设置的缓存失效时间越长。这种方式有助于应对一些突发场景,例如促销场景。在促销的场景中,主推的商品有可能是非畅销商品,那么需要将这些非畅销商品的数据尽可能的长时间缓存,因为促销的时间一般是已天来计算的,在促销的时间段内无法确定访问频率的大小。人为权重系数为数据缓存提供了一种可控的手段,极大方便了一些特殊场景下的缓存数据的设置。
客观权重系数指的通过数据的访问频率来计算出来的系数。数据被访问的频率越高,其客观权重系数就越大。客观权重系数的数据来源为数据查询解析器提供的数据查询次数数据量。
设置人为权重系数、客观权重系数在权重系数体系中所占的百分比,可计算出某一业务数据最终的权重系数,根据此权重系数即可设置具体的缓存数据失效时间,同时缓存时间处理器会记录下该缓存失效时间。缓存时间处理器在计算出缓存数据失效时间后,会从当前已存储的缓存数据失效时间集合中检索当前失效时间出现的次数,如果该失效时间出现的次数较高,会再次计算缓存失效时间。在同时缓存时间处理器会启动一个失效时间倒计时的程序,在缓存失效时间到达的时候会主动的提交一个重新此失效数据的请求,由数据更新解析器中线程来重新刷新改缓存数据。
如图1所示,通过一系列计算优化设置缓存的失效时间,在很大程度上避免了因大批量缓存数据集体失效,造成数据请求路由到底层数据库,从而给数据库造成巨大压力,设置服务宕机的风险。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (8)
1.一种预防缓存雪崩的系统,其特征在于用于根据已有的缓存时效时间动态计算当前数据的具体时效时间,并通过人为权重系数控制时效时间,所述系统包括:
数据查询解析器,所述数据查询解析器用于记录各个监控表的数据查询次数,将满足预定查询频率的数据作为高频查询数据,并将高频处查询数据进行缓存;
数据更新解析器,所述数据更新解析器作用于被缓存的高频查询数据,在更新某一条高频查询数据时所述数据更新解析器用于根据具体的场景来进行数据更新;
缓存时间处理器器,所述缓存时间处理器用于根据数据的权重计算数据需要被设置的失效时间,所述数据的权重包括主观权重和客观权重,所述主观权重为人为设置的权重系数,所述客观权重为通过程序采集的权重系数。
2.根据权利要求1所述的一种预防缓存雪崩的系统,其特征在于所述监控表的表信息通过管理员预先手动配置;
所述数据查询解析器用于记录管理员预先手动配置的监控表的数据查询次数。
3.根据权利要求1所述的一种预防缓存雪崩的系统,其特征在于如果被更新的数据单独存放于缓存中,所述数据更新解析器用于直接从缓存中获取具体的数据并将获取的数据更新为最新数据,并调用缓存时间处理器获取应设置的缓存时效时间,将最新的数据进行缓存。
4.根据权利要求3所述的一种预防缓存雪崩的系统,其特征在于如果被更新的数据与其他数据共同存储在一个key对应的value中,所述数据更新解析器用于按照当前数据在列表的索引位置进行更新。
5.根据权利要求1、2、3或4所述的一种预防缓存雪崩的系统,其特征在于所述人为设置的权重系数为管理员手动设置的监控表的数据数据的权重系数,权重系数越大表示所述表数据被设置的缓存失效时间越长;
所述客观权重系数为通过数据的访问频率计算得出的系数,数据被访问的频率越高表示所述数据的客观权重系数越大。
6.根据权利要求1、2、3、4或5所述的一种预防缓存雪崩的系统,其特征在于所述缓存时间处理器器用于根据数据的权重计算数据需要被设置的失效时间,包括如下操作:
设置主观权重和客观权重在权重系数体系中所占的百分比,以计算出目标数据最终的权重系数;
根据所述权重系数设置缓存数据失效时间,并通过缓存时间处理器记录所述缓存失效时间;
缓存时间处理器在计算出缓存数据失效时间后,从当前已存储的缓存数据失效时间集合中检索当前缓存数据失效时间出现的次数,如果所述缓存数据失效时间出现的次数较高,再次计算缓存数据失效时间,同时缓存时间处理器启动一个失效时间倒计时的程序,在缓存失效时间到达时,通过所述程序主动提交一个重新计算所述缓存数据失效时间的请求,由数据更新解析器重新刷新所述缓存数据。
7.根据权利要求6所述的一种预防缓存雪崩的系统,其特征在于所述数据查询解析器用于启动一个线程,并通过所述线程处理失效数据刷新的请求。
8.根据权利要求6所述的一种预防缓存雪崩的系统,其特征在于通过所述程序主动提交一个重新计算所述缓存数据失效时间的请求,由数据更新解析器中线程重新刷新所述缓存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894079.7A CN113688155A (zh) | 2021-08-05 | 2021-08-05 | 一种预防缓存雪崩的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894079.7A CN113688155A (zh) | 2021-08-05 | 2021-08-05 | 一种预防缓存雪崩的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688155A true CN113688155A (zh) | 2021-11-23 |
Family
ID=78578857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110894079.7A Pending CN113688155A (zh) | 2021-08-05 | 2021-08-05 | 一种预防缓存雪崩的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688155A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080625A (zh) * | 2022-07-21 | 2022-09-20 | 成都薯片科技有限公司 | 基于Spring Cache缓存框架的缓存方法、装置、设备及存储介质 |
-
2021
- 2021-08-05 CN CN202110894079.7A patent/CN113688155A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080625A (zh) * | 2022-07-21 | 2022-09-20 | 成都薯片科技有限公司 | 基于Spring Cache缓存框架的缓存方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7231496B2 (en) | Method, system and program product for caching data objects | |
CN103617131B (zh) | 一种实现数据缓存的方法 | |
US7912812B2 (en) | Smart data caching using data mining | |
US20040034744A1 (en) | Delay cache method and apparatus | |
US9996404B2 (en) | Message cache management for message queues | |
CN108667916B (zh) | 一种Web应用的数据访问方法及系统 | |
CN104850627B (zh) | 进行分页展示的方法及装置 | |
US10725921B2 (en) | System and method for caching time series data | |
CN109684079B (zh) | 显示数据处理方法、装置以及电子设备 | |
US20090019227A1 (en) | Method and Apparatus for Refetching Data | |
CN112052097B (zh) | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 | |
WO2019041670A1 (zh) | 一种降低功能页面请求次数的方法、存储介质、设备及系统 | |
CN113688155A (zh) | 一种预防缓存雪崩的系统 | |
US8082342B1 (en) | Discovery of short-term and emerging trends in computer network traffic | |
CN107707621B (zh) | 一种实现智能缓存的方法及装置 | |
JP2022550380A (ja) | 日付切替データオフロード方法、装置、設備及び媒体 | |
CN109597724B (zh) | 服务稳定性测量方法、装置、计算机设备及存储介质 | |
CN115080625B (zh) | 基于Spring Cache缓存框架的缓存方法、装置、设备及存储介质 | |
US8296523B2 (en) | Dual timeout caching | |
US7571446B2 (en) | Server, computer system, object management method, server control method, computer program | |
US11947817B2 (en) | Memory mapping to enhance data cube performance | |
CN115329179A (zh) | 数据采集资源量控制方法、装置、设备及存储介质 | |
CN110019362A (zh) | 一种访问数据库的方法及装置 | |
WO2016053302A1 (en) | Processing query of database and data stream | |
CN105868207B (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 |