CN113742381B - 缓存获取方法、设备和计算机可读介质 - Google Patents

缓存获取方法、设备和计算机可读介质 Download PDF

Info

Publication number
CN113742381B
CN113742381B CN202111004002.4A CN202111004002A CN113742381B CN 113742381 B CN113742381 B CN 113742381B CN 202111004002 A CN202111004002 A CN 202111004002A CN 113742381 B CN113742381 B CN 113742381B
Authority
CN
China
Prior art keywords
cache
actual
value
refreshing
interval
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.)
Active
Application number
CN202111004002.4A
Other languages
English (en)
Other versions
CN113742381A (zh
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.)
Oudian Cloud Information Technology Jiangsu Co ltd
Original Assignee
Oudian Cloud Information Technology Jiangsu 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 Oudian Cloud Information Technology Jiangsu Co ltd filed Critical Oudian Cloud Information Technology Jiangsu Co ltd
Priority to CN202111004002.4A priority Critical patent/CN113742381B/zh
Publication of CN113742381A publication Critical patent/CN113742381A/zh
Application granted granted Critical
Publication of CN113742381B publication Critical patent/CN113742381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种缓存获取方法、设备和计算机可读介质,该方法包括以下步骤:接收传入的缓存相关参数,其中,缓存相关参数包括缓存值的键及刷新间隔;基于键,获取实际缓存对象;响应于实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于刷新间隔,触发异步缓存刷新逻辑以返回实际缓存对象中的业务缓存值。本公开提供的用于防止缓存击穿的缓存获取方法、设备和计算机可读介质,可以有效地使缓存动态刷新,能够通过一个统一的工具类获取缓存,利用一系列防止缓存击穿的缓存相关参数,作为获取缓存的入口,在其中封装所有防止缓存击穿的逻辑,从而提供更加稳定、实时、简易化的策略来防止缓存击穿,提升了软件开发效率。

Description

缓存获取方法、设备和计算机可读介质
技术领域
本公开涉及计算机软件技术领域,特别涉及一种用于防止缓存击穿的缓存获取方法、设备和计算机可读介质。
背景技术
随着软件用户量越来越多,流量提升到达数据库吞吐量瓶颈时软件开发人员往往会在流量到达数据库前加一道缓存层,通过查询缓存数据的方式减轻数据库压力从而提高***整体的查询性能与吞吐量。
参考图2所示,添加了缓存层后的***模型主要包括四个组成部分:客户端、服务端、缓存、数据库。其中,客户端是指实际发送数据请求的端,而服务端就是提供数据请求服务的程序,接收到客户端的请求后会去对应的缓存层中查询,若根据请求参数查询到了对应的缓存数据则直接返回,若未查询到则会查询数据库并返回数据。
在为应用增加缓存层时,如果由于缓存到期、冷启动等原因导致缓存失效,此时恰好遇到大量的并发请求,这些请求将直接穿过缓存访问到后端数据从而导致服务或数据库压力陡增,最终将降低***的吞吐量和响应速度,严重的甚至会导致服务宕机。这种缓存失效时又突然面临大量请求的场景就被称为缓存击穿。
目前,面临缓存击穿场景时主流的解决方式一般为以下两种:
1、加互斥锁的方式。在并发的多个请求中,只有第一个请求线程能拿到锁并执行数据库查询操作,其他的线程拿不到锁就阻塞等待,等到第一个线程将数据写入缓存后,直接走缓存。
2、热点数据永不过期的方式。直接将缓存设置为不过期,然后由定时任务去异步加载数据,更新缓存。这种方式适用于比较极端的场景,例如,流量非常大的场景,可以保证每次获取缓存都必定有数据。
但是,以上两种解决方式都具有以下明显的缺陷,导致无法有效地满足各项需求。
加互斥锁的方式,刷新缓存会使多个线程在程序中阻塞,只能缓解数据库的压力不能缓解服务本身的压力。如果创建的线程数达到了操作***的上限,或者内存被创建的线程消耗完毕,则会导致程序本身的崩溃。
使缓存永不过期然后使用定时任务刷新的方式,由于其定时刷新特性,使用时需要开发人员考虑业务能接受的数据不一致的时间。还有对于异常情况的处理,如果某一次刷新时由于服务和缓存层的网络出现问题导致缓存刷新不上,就会导致好几个刷新窗口期间一直是脏数据。
而且,在***中引入定时任务的方式由于需要保证定时任务的可靠性,因此必须得用分布式定时任务解决方案,需要在主逻辑之外的独立线程或进程中执行更新逻辑,会增加***的复杂度。并且定时更新时不一定数据有变化,在无人访问时段刷新更是没有意义。
综上所述,目前的解决缓存击穿的方式,存在使用缓存层遇到的缓存击穿场景难以防护、解决方案实现复杂、效率低等问题。
发明内容
本公开的主要目的在于,提供一种用于防止缓存击穿的缓存获取方法、设备和计算机可读介质,以改善现有技术中存在的上述缺陷。
本公开是通过下述技术方案来解决上述技术问题:
作为本公开的一方面,提供一种缓存获取方法,包括以下步骤:
接收传入的缓存相关参数,其中,所述缓存相关参数包括缓存值的键及刷新间隔;
基于所述键,获取实际缓存对象;以及,
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,触发异步缓存刷新逻辑以返回所述实际缓存对象中的业务缓存值。
可选地,所述缓存相关参数还包括用于加载缓存值的dataLoader函数(数据加载器);
所述基于所述键,获取实际缓存对象的步骤,包括:
响应于获取不到所述键对应的实际缓存对象,执行所述dataLoader函数以得到业务缓存值;
创建实际缓存对象,在所述实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间;
将所述实际缓存对象保存至缓存服务;
返回通过执行所述dataLoader函数得到的业务缓存值。
可选地,所述缓存相关参数还包括用于刷新线程的持有分布式锁的最大锁定时间;
所述响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,触发异步缓存刷新逻辑以返回所述实际缓存对象中的业务缓存值的步骤,具体包括:
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,创建新线程以执行异步缓存刷新逻辑;
通过新线程根据所述键获取一个分布式锁,其中,将所述最大锁定时间作为锁定的最大时间;
响应于获取到所述锁,执行所述dataLoader函数以得到需要缓存的业务缓存值;
创建实际缓存对象,在所述实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间;
将实际缓存对象保存到缓存服务,并且释放当前线程持有的分布式锁。
可选地,所述创建新线程以执行异步缓存刷新逻辑的步骤,包括:
返回已存在的实际缓存对象中的业务缓存值,并且创建新线程以执行异步缓存刷新逻辑。
可选地,所述返回已存在的实际缓存对象中的业务缓存值的步骤,包括:
无阻塞返回已存在的实际缓存对象中的业务缓存值。
可选地,所述基于所述键,获取实际缓存对象的步骤,包括:
响应于获取到所述键对应的实际缓存对象,取出并返回所述实际缓存对象中的业务缓存值。
可选地,还包括:
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔小于所述刷新间隔,返回所述实际缓存对象中的业务缓存值。
可选地,所述缓存相关参数还包括所述键的实际过期时间。
作为本公开的另一方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现如上述的缓存获取方法。
作为本公开的另一方面,提供一种计算机可读介质,其上存储有计算机指令,所述计算机指令在由处理器执行时实现如上述的缓存获取方法。
根据本公开内容,本领域技术人员可以理解本公开内容的其它方面。
本公开的积极进步效果在于:
本公开提供的用于防止缓存击穿的缓存获取方法、设备和计算机可读介质,可以有效地使缓存动态刷新,能够通过一个统一的工具类获取缓存,利用一系列防止缓存击穿的缓存相关参数,作为获取缓存的入口,在其中封装所有防止缓存击穿的逻辑,从而提供更加稳定、实时、简易化的策略来防止缓存击穿,提升了软件开发效率。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本公开的所述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1为根据本公开内容的一实施例的缓存获取方法的流程示意图。
图2为示出请求服务时的场景示意图。
图3为根据本公开内容的一实施例的缓存获取方法的获取缓存时的场景示意图。
图4为根据本公开的另一实施例的实现缓存获取方法的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本公开,但并不因此将本公开限制在所述的实施例范围之中。
应当注意,在说明书中对“一实施例”、“可选实施例”、“另一实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括该特定的特征、结构或特性。而且,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,无论是否被明确描述,结合其它实施例来实现这样的特征、结构或特性都在相关领域的技术人员的知识范围内。
在本公开内容的描述中,需要理解的是,术语“中心”、“横向”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开内容和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开内容的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开内容的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,术语“包括”及其任何变形,意图在于覆盖不排他的包含。
在本公开内容的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开内容中的具体含义。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
为了克服目前存在的上述缺陷,本实施例提供一种缓存获取方法,包括以下步骤:接收传入的缓存相关参数,其中,缓存相关参数包括缓存值的键及刷新间隔;基于键,获取实际缓存对象;以及,响应于实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于刷新间隔,触发异步缓存刷新逻辑以返回实际缓存对象中的业务缓存值。
在本实施例中,可以有效地使缓存动态刷新,能够通过一个统一的工具类获取缓存,利用一系列防止缓存击穿的缓存相关参数,作为获取缓存的入口,在其中封装所有防止缓存击穿的逻辑,从而提供更加稳定、实时、简易化的策略来防止缓存击穿,提升了软件开发效率。
具体地,作为一实施例,参考图1所示,本实施例提供的缓存获取方法,主要包括以下步骤:
步骤101、接收传入的缓存相关参数。
在本步骤中,传入需要的缓存相关参数,作为一优选实施方式,缓存相关参数主要包括缓存值的键(key)、键的实际过期时间(expireTime)、刷新间隔(refreshInterval)、用于刷新线程的持有分布式锁的最大锁定时间(maxCalcTime)以及用于加载缓存值的dataLoader函数。当然,本实施例并不具体限定缓存相关参数,可根据实际需求或可能出现需求进行相应的选择及调整。
参考图3所示,以下具体说明缓存相关参数。
key为需要缓存的值的键,可以通过key找到对应的缓存值。缓存值则为业务需要缓存的数据。
在本实施例中,实际缓存对象为真实存入缓存层的数据模型,在真实需要缓存的业务缓存值外包裹了一层,额外包含了最后一次更新缓存数据的时间。将此实际缓存对象代替传入的业务缓存对象保存到缓存层,即可在后续获取时通过对最后更新时间做判定来决定是否触发异步缓存刷新逻辑。
expireTime为缓存的实际过期时间,若缓存没有任何更新操作将在指定的缓存时间后过期,即物理删除无法访问。
refreshInterval为缓存可触发刷新机制的间隔,在获取缓存时若实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,则另起一个线程在后台执行缓存刷新逻辑。可以将refreshInterval理解为逻辑上的缓存过期时间。
其中,在后台执行缓存刷新逻辑的线程使用分布式锁机制保证刷新逻辑只会同时存在一个。本次请求仍然返回实际缓存对象中的缓存值。
maxCalcTime为分布式锁的最大锁定时间,也是最大计算新缓存值的时间,其目的是为了确保在锁的持有人因***负载、网络等原因导致一直未释放锁时可以让锁自然过期。在持有锁超过maxCalcTime设置的时间后该锁将被自动释放,新的获取缓存请求到来即可再次触发缓存刷新逻辑。
数据加载器dataLoader为加载业务缓存值的函数,由调用端自行定义函数内的计算逻辑,通过该函数得到的对象则为需要真实缓存的对象。会在通过Key获取缓存为空和达到刷新间隔refreshInterval触发刷新机制时回调,刷新缓存完毕后将重新设置过期时间expireTime。
步骤102、基于所述键,获取实际缓存对象。
在本步骤中,响应于获取到键对应的实际缓存对象,取出并返回所述实际缓存对象中的业务缓存值。
在本步骤中,响应于获取不到所述键对应的实际缓存对象,具体包括以下步骤:
步骤1021、执行dataLoader函数以得到业务需要缓存的业务缓存值;
步骤1022、创建实际缓存对象,在实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间;
步骤1023、将实际缓存对象保存至缓存服务;
步骤1024、返回步骤1021生成的业务缓存值。
步骤103、判断实际缓存对象中的最后刷新时间与当前时刻之间的间隔是否大于或等于所述刷新间隔,若是执行步骤104,若否执行步骤105。
在本步骤中,通过步骤102中获得的实际缓存对象,获取实际缓存对象中包含的最后刷新时间字段,并且计算当前时刻与最后刷新时间的间隔,在间隔大于或等于步骤101中传入的refreshInterval时执行步骤104,否则执行步骤105。
步骤104、触发异步缓存刷新逻辑。
作为一可选实施方式,在本步骤中,响应于实际缓存对象中的最后刷新时间与当前时刻之间的间隔小于刷新间隔,具体包括以下步骤:
步骤1041、返回已存在的实际缓存对象中的业务缓存值,创建新线程以执行异步缓存刷新逻辑。
在本实施例中,无阻塞返回已存在的实际缓存对象中的业务缓存值,以保证获取缓存的请求不被阻塞。
步骤1042、通过新线程根据键试图获取一个分布式锁,确保全局只会有一处刷新逻辑正在执行,其中,将最大锁定时间作为锁定的最大时间。
步骤1043、响应于获取到锁,执行dataLoader函数以得到需要缓存的业务缓存值。
步骤1044、创建实际缓存对象,在实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间。
步骤1045、将实际缓存对象保存到缓存服务,并且释放当前线程持有的分布式锁。
步骤105、返回实际缓存对象中的业务缓存值。
在本步骤中,响应于实际缓存对象中的最后刷新时间与当前时刻之间的间隔小于刷新间隔,返回实际缓存对象中的业务缓存值。
在本实施例中,还提供利用如上述缓存获取方法的用于防止缓存击穿的缓存获取***,能够使得业务代码仅需通过一个入口执行获取缓存的逻辑,并通过实时判定和无阻塞异步刷新的获取缓存方法来有效地防止了缓存击穿,同时保证稳定、实时、简易化等各方面的指标,从而提升了易用性和软件开发效率,降低了维护成本。
本实施例提供的用于用于防止缓存击穿的缓存获取方法,主要具有以下有益效果:
1、获取缓存和刷新缓存均在一个方法中封装,使用简单;
2、除非缓存为空,否则更新缓存都是异步的,所有试图获取缓存的操作都不会被阻塞,提升了性能;
3、获取缓存时才判定刷新间隔以操作缓存刷新,实时性强,不会在无人访问时刷新,资源利用率高;
4、对于一个缓存的更新,在整个分布式***内,仅会有一个线程在计算,资源消耗低。
图4为根据本实施例提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上执行的计算机程序,处理器执行程序时实现如上实施例中的缓存获取方法。图4显示的电子设备30仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同***组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过执行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本公开如上实施例中的缓存获取方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如上实施例中的缓存获取方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本公开还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上执行时,程序代码用于使终端设备执行实现如上实施例中的缓存获取方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本公开的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本公开的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本公开的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本公开的保护范围。

Claims (8)

1.一种缓存获取方法,其特征在于,包括以下步骤:
接收传入的缓存相关参数,其中,所述缓存相关参数包括缓存值的键及刷新间隔;
基于所述键,获取实际缓存对象;以及,
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,触发异步缓存刷新逻辑以返回所述实际缓存对象中的业务缓存值;
所述缓存相关参数还包括用于加载缓存值的dataLoader函数;
所述基于所述键,获取实际缓存对象的步骤,包括:
响应于获取不到所述键对应的实际缓存对象,执行所述dataLoader函数以得到业务缓存值;
创建实际缓存对象,在所述实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间;
将所述实际缓存对象保存至缓存服务;
返回通过执行所述dataLoader函数得到的业务缓存值;
所述缓存相关参数还包括用于刷新线程的持有分布式锁的最大锁定时间;
所述响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,触发异步缓存刷新逻辑以返回所述实际缓存对象中的业务缓存值的步骤,具体包括:
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔大于或等于所述刷新间隔,创建新线程以执行异步缓存刷新逻辑;
通过新线程根据所述键获取一个分布式锁,其中,将所述最大锁定时间作为锁定的最大时间;
响应于获取到所述锁,执行所述dataLoader函数以得到需要缓存的业务缓存值;
创建实际缓存对象,在所述实际缓存对象中设置业务缓存值并将当前时刻作为最后刷新时间;
将实际缓存对象保存到缓存服务,并且释放当前线程持有的分布式锁。
2.如权利要求1所述的缓存获取方法,其特征在于,所述创建新线程以执行异步缓存刷新逻辑的步骤,包括:
返回已存在的实际缓存对象中的业务缓存值,并且创建新线程以执行异步缓存刷新逻辑。
3.如权利要求2所述的缓存获取方法,其特征在于,所述返回已存在的实际缓存对象中的业务缓存值的步骤,包括:
无阻塞返回已存在的实际缓存对象中的业务缓存值。
4.如权利要求1所述的缓存获取方法,其特征在于,所述基于所述键,获取实际缓存对象的步骤,包括:
响应于获取到所述键对应的实际缓存对象,取出并返回所述实际缓存对象中的业务缓存值。
5.如权利要求1所述的缓存获取方法,其特征在于,还包括:
响应于所述实际缓存对象中的最后刷新时间与当前时刻之间的间隔小于所述刷新间隔,返回所述实际缓存对象中的业务缓存值。
6.如权利要求1所述的缓存获取方法,其特征在于,所述缓存相关参数还包括所述键的实际过期时间。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行计算机程序时实现如权利要求1~6中任意一项所述的缓存获取方法。
8.一种计算机可读介质,其上存储有计算机指令,其特征在于,所述计算机指令在由处理器执行时实现如权利要求1~6中任意一项所述的缓存获取方法。
CN202111004002.4A 2021-08-30 2021-08-30 缓存获取方法、设备和计算机可读介质 Active CN113742381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111004002.4A CN113742381B (zh) 2021-08-30 2021-08-30 缓存获取方法、设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111004002.4A CN113742381B (zh) 2021-08-30 2021-08-30 缓存获取方法、设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN113742381A CN113742381A (zh) 2021-12-03
CN113742381B true CN113742381B (zh) 2023-07-25

Family

ID=78733778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111004002.4A Active CN113742381B (zh) 2021-08-30 2021-08-30 缓存获取方法、设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN113742381B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643289B1 (en) * 1999-12-29 2003-11-04 3Com Corporation Method of MPOA status change notification
CN105373369A (zh) * 2014-08-25 2016-03-02 北京皮尔布莱尼软件有限公司 一种异步缓存方法、服务器及***
CN105630812A (zh) * 2014-10-30 2016-06-01 阿里巴巴集团控股有限公司 集群应用缓存刷新方法及装置
CN106502589A (zh) * 2016-10-21 2017-03-15 普元信息技术股份有限公司 基于云计算实现缓存的加载或持久化的***及方法
CN106815287A (zh) * 2016-12-06 2017-06-09 ***股份有限公司 一种缓存管理方法及装置
CN106844784A (zh) * 2017-03-14 2017-06-13 上海网易小额贷款有限公司 数据缓存方法、装置及计算机可读存储介质
CN109032771A (zh) * 2018-05-31 2018-12-18 深圳壹账通智能科技有限公司 本地缓存方法、装置、计算机设备和存储介质
CN110865768A (zh) * 2018-08-27 2020-03-06 中兴通讯股份有限公司 写缓存资源分配方法、装置、设备以及存储介质
CN111414392A (zh) * 2020-03-25 2020-07-14 浩鲸云计算科技股份有限公司 高速缓存异步刷新方法、***及计算机可读存储介质
CN111966719A (zh) * 2020-10-21 2020-11-20 四川新网银行股份有限公司 一种分布式消费信贷***本地数据缓存实时刷新的方法
CN112486948A (zh) * 2020-11-25 2021-03-12 福建省数字福建云计算运营有限公司 一种实时数据处理方法
CN113010278A (zh) * 2021-02-19 2021-06-22 建信金融科技有限责任公司 一种用于财险核心***的批处理方法及***
CN113312391A (zh) * 2021-06-01 2021-08-27 上海万物新生环保科技集团有限公司 一种缓存异步延时刷新的方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531720B2 (en) * 2014-09-02 2016-12-27 Akamai Technologies, Inc. System and methods for leveraging an object cache to monitor network traffic
US10650475B2 (en) * 2016-05-20 2020-05-12 HomeAway.com, Inc. Hierarchical panel presentation responsive to incremental search interface
US10665210B2 (en) * 2017-12-29 2020-05-26 Intel Corporation Extending asynchronous frame updates with full frame and partial frame notifications

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643289B1 (en) * 1999-12-29 2003-11-04 3Com Corporation Method of MPOA status change notification
CN105373369A (zh) * 2014-08-25 2016-03-02 北京皮尔布莱尼软件有限公司 一种异步缓存方法、服务器及***
CN105630812A (zh) * 2014-10-30 2016-06-01 阿里巴巴集团控股有限公司 集群应用缓存刷新方法及装置
CN106502589A (zh) * 2016-10-21 2017-03-15 普元信息技术股份有限公司 基于云计算实现缓存的加载或持久化的***及方法
CN106815287A (zh) * 2016-12-06 2017-06-09 ***股份有限公司 一种缓存管理方法及装置
CN106844784A (zh) * 2017-03-14 2017-06-13 上海网易小额贷款有限公司 数据缓存方法、装置及计算机可读存储介质
CN109032771A (zh) * 2018-05-31 2018-12-18 深圳壹账通智能科技有限公司 本地缓存方法、装置、计算机设备和存储介质
CN110865768A (zh) * 2018-08-27 2020-03-06 中兴通讯股份有限公司 写缓存资源分配方法、装置、设备以及存储介质
CN111414392A (zh) * 2020-03-25 2020-07-14 浩鲸云计算科技股份有限公司 高速缓存异步刷新方法、***及计算机可读存储介质
CN111966719A (zh) * 2020-10-21 2020-11-20 四川新网银行股份有限公司 一种分布式消费信贷***本地数据缓存实时刷新的方法
CN112486948A (zh) * 2020-11-25 2021-03-12 福建省数字福建云计算运营有限公司 一种实时数据处理方法
CN113010278A (zh) * 2021-02-19 2021-06-22 建信金融科技有限责任公司 一种用于财险核心***的批处理方法及***
CN113312391A (zh) * 2021-06-01 2021-08-27 上海万物新生环保科技集团有限公司 一种缓存异步延时刷新的方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
洋山港四期自动化码头任务调度***优化;丁益华等;《港口科技》;16-21 *

Also Published As

Publication number Publication date
CN113742381A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
EP3796150B1 (en) Storage volume creation method and apparatus, server, and storage medium
US8909996B2 (en) Utilizing multiple storage devices to reduce write latency for database logging
US7783852B2 (en) Techniques for automated allocation of memory among a plurality of pools
US7650400B2 (en) Dynamic configuration and self-tuning on inter-nodal communication resources in a database management system
EP0713183A2 (en) Network independent file shadowing
US7426735B2 (en) Threading and communication architecture for a graphical user interface
US9354989B1 (en) Region based admission/eviction control in hybrid aggregates
US20180060145A1 (en) Message cache management for message queues
US9128895B2 (en) Intelligent flood control management
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
JPH02228744A (ja) データ処理システム
CN101137984A (zh) 用于分布加载数据库的***、方法和软件
CN113742381B (zh) 缓存获取方法、设备和计算机可读介质
CN101626313A (zh) 网管***客户端性能数据显示方法和网管***客户端
US20110302377A1 (en) Automatic Reallocation of Structured External Storage Structures
US10970175B2 (en) Flexible per-request data durability in databases and other data stores
US7827215B2 (en) Real-time operation by a diskless client computer
CN112948399B (zh) 序列号生成方法、装置、计算机设备和存储介质
US20040025007A1 (en) Restricting access to a method in a component
CN115599542A (zh) 一种共享内存池实现方法及***
US7974955B2 (en) Inhibiting non-critical access based on measured performance in a database system
WO2020238748A1 (zh) 数据同步的处理方法、装置、电子设备及计算机存储介质
CN109739516B (zh) 一种云缓存的运行方法及***
CN113901018A (zh) 一种待迁移文件识别方法、装置、计算机设备及存储介质
CN116842299B (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