CN113688155A - 一种预防缓存雪崩的系统 - Google Patents

一种预防缓存雪崩的系统 Download PDF

Info

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
Application number
CN202110894079.7A
Other languages
English (en)
Inventor
苏德伟
徐士强
张明哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110894079.7A priority Critical patent/CN113688155A/zh
Publication of CN113688155A publication Critical patent/CN113688155A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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所述的一种预防缓存雪崩的系统,其特征在于通过所述程序主动提交一个重新计算所述缓存数据失效时间的请求,由数据更新解析器中线程重新刷新所述缓存数据。
CN202110894079.7A 2021-08-05 2021-08-05 一种预防缓存雪崩的系统 Pending CN113688155A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080625A (zh) * 2022-07-21 2022-09-20 成都薯片科技有限公司 基于Spring Cache缓存框架的缓存方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
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