CN110837513A - 一种缓存更新方法、装置、服务器及存储介质 - Google Patents
一种缓存更新方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110837513A CN110837513A CN201911081374.XA CN201911081374A CN110837513A CN 110837513 A CN110837513 A CN 110837513A CN 201911081374 A CN201911081374 A CN 201911081374A CN 110837513 A CN110837513 A CN 110837513A
- Authority
- CN
- China
- Prior art keywords
- updating
- access request
- cache
- update
- data
- 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
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/23—Updating
-
- 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
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存更新方法、装置、服务器及存储介质,其中,缓存更新方法包括:在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;确定第一预设时间间隔内所述更新访问请求的第一数量;当第一数量超过预设阈值时,为每个更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;根据更新访问请求的延时更新时长,从数据源中获取更新访问请求的缓存数据所对应的存储数据;根据所述存储数据对缓存中所述更新访问请求所对应的缓存数据进行更新。本发明避免了数据库的雪崩发生,且无需依赖额外的外部设备,不会增加额外的存储以及网络通信代价。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种缓存更新方法、装置、服务器及存储介质。
背景技术
为了缓解数据源如数据库的压力、降低网络拥堵、提高响应速度,现有技术中采用缓存来存储使用频繁的数据,针对数据读取请求,先从缓存中读取数据,当缓存中没有该数据或者该数据失效时再从数据源如数据库中读取数据。
相关技术中,若多个并发请求的缓存数据同时失效则会出现缓存的并发更新,此时多个并发请求都会去请求数据源如数据库,从而给数据库造成极大的压力,甚至会导致数据库的雪崩,目前的主要解决措施是使用分布式锁或者队列排队进行更新,但是这些措施需要增加额外的存储设备以及增加额外的网络通信代价。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种缓存更新方法、装置、服务器及存储介质。所述技术方案如下:
一方面,提供了一种缓存更新方法,所述方法包括:
在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;
确定第一预设时间间隔内所述更新访问请求的第一数量;
当所述第一数量超过预设阈值时,为每个所述更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;
根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据;
根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新
另一方面,提供了一种缓存更新装置,所述装置包括:
第一确定模块,用于在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;
第二确定模块,用于确定第一预设时间间隔内所述更新访问请求的第一数量;
分配模块,用于在所述第一数量超过预设阈值时,为每个所述更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;
第一获取模块,用于根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据;
更新模块,用于根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新。
作为一个可选的实施方式,所述分配模块包括:
划分模块,用于将所述第二预设时间间隔划分为所述第一数量个子时间间隔;
分配子模块,用于为每个所述更新访问请求分配不同数量个所述子时间间隔;
第一计算模块,用于针对每个所述更新访问请求,计算所述更新访问请求所对应数量的所述子时间间隔的和值,得到所述更新访问请求的延时更新时长。
作为一个可选的实施方式,所述第一获取模块包括:
第二获取模块,用于针对每个所述更新访问请求,获取所述更新访问请求对应的访问时间;
第二计算模块,用于计算所述访问时间与所述更新访问请求的延时更新时长的和值,得到所述更新访问请求对应的请求更新时间;
第三获取模块,用于在当前时间达到所述请求更新时间时,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据。
作为一个可选的实施方式,所述第三获取模块包括:
生成模块,用于在当前时间达到所述请求更新时间时,生成所述更新访问请求对应的存储数据获取请求;
发送模块,用于按照预设传输速率向所述数据源发送所述存储数据获取请求;
接收模块,用于接收所述数据源基于所述存储数据获取请求返回的所述存储数据。
作为一个可选的实施方式,所述装置还包括:
第三确定模块,用于按照预设标识规则,确定所述更新访问请求的访问标识;
第四获取模块,用于获取所述访问标识为预设目标访问标识的更新访问请求,得到目标更新访问请求;
相应的,所述分配模块在为每个所述更新访问请求分配不同的延时更新时长时,具体为每个所述目标更新访问请求分配不同的延时更新时长。
作为一个可选的实施方式,所述装置还包括:
第五获取模块,用于获取所述访问请求的访问时间;
第六获取模块,用于获取所述访问请求所请求的缓存数据的写入时间和预设有效时长;
第三计算模块,用于计算所述写入时间与预设有效时长的和值,得到过期时间;
第一判断模块,用于判断所述访问时间是否超过所述过期时间;
第四确定模块,用于在所述第一判断模块判断的结果为是时,确定所述访问请求所对应的缓存数据为无效缓存数据。
另一方面,提供了一种业务服务器,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述缓存更新方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的缓存更新方法。
本发明实施例通过在更新访问请求的第一数量超过预设阈值时,为每个更新访问请求分别分配不同的延时更新时长,且该延时更新时长不超过第二预设时间间隔,然后基于每个更新访问请求对应的延时更新时长,从数据源中获取该更新访问请求所请求的缓存数据对应的存储数据,进而根据该存储数据对缓存中该更新访问请求所对应的缓存数据进行更新,从而将对数据源的多个并发请求平滑到第二预设时间间隔内,实现每个延时更新时长内只向数据源发送一个存储数据的获取请求,有效避免了同一时间大量并发更新请求对数据库造成的极大压力,避免了数据库的雪崩发生;并且本发明实施例的上述方法无需依赖额外的外部设备,不会增加额外的存储以及网络通信代价,大大降低了人力、物力成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种缓存更新方法的流程示意图;
图2是本发明实施例提供的确定访问请求所对应的缓存数据是否为无效缓存数据的一种方法的流程示意图;
图3是本发明实施例提供的另一种缓存更新方法的流程示意图;
图4是本发明实施例提供的一种缓存更新装置的结构示意图;
图5是本发明实施例提供的另一种缓存更新装置的结构示意图
图6是本发明实施例提供的一种服务器的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其所示为本发明实施例提供的一种缓存更新方法的流程示意图,需要说明的是,本发明实施例的缓存更新方法可以应用于本发明实施例的缓存更新装置,该缓存更新装置可以配置于业务服务器中,更具体的,该缓存更新装置可以配置于业务服务器的业务层。其中,业务服务器可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
此外,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:
S101,在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求。
本说明书实施例中,缓存数据是指缓存中所存储的数据,访问请求是指用于访问缓存中存储的数据的请求,访问请求所对应的缓存数据是指访问请求所请求访问的缓存数据。其中,缓存可以是本地缓存,也可以是分布式缓存如Redis。
具体的实施中,在接收到针对缓存中缓存数据的访问请求之后,所述方法还可以包括确定访问请求所对应的缓存数据是否为无效缓存数据的步骤,如图2所示,该步骤可以包括:
S201,获取所述访问请求的访问时间。
S203,获取所述访问请求所请求的缓存数据的写入时间和预设有效时长。
本说明书实施例中,缓存数据在被写入缓存中时,缓存会存储该缓存数据的写入时间。缓存数据的预设有效时长可以由缓存配置也可以由业务服务器的业务层配置,缓存中各缓存数据的预设有效时长可以相同也可以不同,具体的,可以根据实际需要对预设有效时长进行设定,例如,可以设定为30秒,也可以设定为1分钟等等。
S205,计算所述写入时间与预设有效时长的和值,得到过期时间。
例如,写入时间为10:30,预设有效时长为1分钟,则过期时间为10:31。
S207,判断所述访问时间是否超过所述过期时间。
具体的,当访问请求所对应的访问时间超过上述的过期时间时,可以执行步骤S209;当访问请求所对应的访问时间没有超过上述的过期时间,表明该访问请求所请求访问的缓存数据还属于有效缓存数据,无需进行更新,可以直接进行该缓存数据的访问读取。
S209,确定所述访问请求所对应的缓存数据为无效缓存数据。
本说明书实施例中,将访问请求中所请求访问的缓存数据为无效缓存数据的访问请求确定为更新访问请求,即更新访问请求所对应的缓存数据需要进行更新。
为了保证在数据源如数据库异常的情况下也能够提供正常的数据访问服务,本说明书实施例中,缓存不对缓存中的缓存数据进行过期处理,也就是说,当缓存数据在缓存中的存储时长超过过期时间时,缓存不会主动的对缓存数据进行过期处理,如清除掉该缓存数据。为了使缓存不对缓存中的缓存数据进行过期处理,本说明书实施例中的预设有效时长可以配置在业务服务器的业务层,而在缓存不进行预设有效时长的配置,也就是说,当业务层将数据写入到缓存中时,业务层为该缓存数据配置预设有效时长,缓存只记录该被写入的缓存数据的写入时间,通过将预设有效时长从缓存的记录中剥离出来,从而可以避免缓存主动的对缓存数据进行过期处理,确保了缓存中该缓存数据的永久存在,进而即使数据库出现异常,还是可以从缓存中读取到相应的缓存数据的。
S103,确定第一预设时间间隔内所述更新访问请求的第一数量。
实际应用中,业务服务器在第一预设时间间隔内可能会接收到大量并发的访问请求,在确定了访问请求中的更新访问请求后,对该第一预设时间间隔内的更新访问请求的数量进行统计。其中,第一预设时间间隔可以根据实际需要进行设定,例如可以是1秒。
S105,当所述第一数量超过预设阈值时,为每个所述更新访问请求分配不同的延时更新时长。
其中,预设阈值可以根据数据源如数据库的实际处理能力进行设定,一般而言,数据源的处理能力越强,该预设阈值可以设定的越大;反之,数据源的处理能力越弱,该预设阈值可以设定的越小。
本说明书实施例中,在更新访问请求的第一数量超过预设阈值时,为每个更新访问请求分配不同的延时更新时长,且所述延时更新时长不超过第二预设时间间隔。其中,第二预设时间间隔可以根据实际需要进行设定,例如可以设定为10秒等。各个更新访问请求所对应的延时更新时长可以随机分配为第二预设时间间隔内的任意不同时间间隔,例如,10个更新访问请求,第二预设时间间隔为10s,则各更新访问请求所对应的延时更新时长可以分别为1s、2s、3s、4s、5s、6s、7s、8s、9s、10s。
作为一个可选的实施方式,所述为每个更新访问请求分配不同的延时更新时长可以包括以下步骤:
(1)将所述第二预设时间间隔划分为所述第一数量个子时间间隔。具体的,可以将第二预设时间间隔按照第一数量个进行平均划分,举例而言,第二预设时间间隔为10s,第一数量为5个,平均划分时每个子时间间隔均为2s,即第一数量个子时间间隔为2s、2s、2s、2s、2s。
(2)为每个所述更新访问请求分配不同数量个所述子时间间隔。
(3)针对每个所述更新访问请求,计算所述更新访问请求所对应数量的所述子时间间隔的和值,得到所述更新访问请求的延时更新时长。
例如,5个更新访问请求所分配的子时间间隔的数量分别为1个、2个、3个、4个、5个,则各更新访问请求所对应的延时更新时长分别为:2s、(2+2)s、(2+2+2)s、(2+2+2+2)s、(2+2+2+2+2)s。
S107,根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据。
由于更新访问请求所对应的缓存数据需要进行更新,因此针对该更新访问请求需要向数据源如数据库请求用于更新的存储数据,本说明书实施例中各个更新访问请求在向数据源请求用于更新的存储数据时,基于更新访问请求所对应的延时更新时长进行请求,而各更新访问请求的延时更新时长为第二预设时间间隔内的任意不同时间间隔,从而可以将对数据源的请求平滑到第二预设时间间隔内,避免了对数据源的高并发请求导致的数据源的雪崩。
在步骤S107的具体实施中,针对每个更新访问请求,可以获取该更新访问请求对应的访问时间;计算该访问时间与相对应的更新访问请求的延时更新时长的和值,得到该更新访问请求对应的请求更新时间;在当前时间达到所述请求更新时间时,从数据源获取该更新访问请求的缓存数据所对应的存储数据。
S109,根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新。
具体的,将缓存中更新访问请求所对应的缓存数据替换为相应的存储数据,而缓存可以同时对该缓存数据的写入时间进行更新。
由本发明实施例的上述技术方案可见,本发明实施例通过在更新访问请求的第一数量超过预设阈值时,为每个更新访问请求分别分配不同的延时更新时长,且该延时更新时长不超过第二预设时间间隔,然后基于每个更新访问请求对应的延时更新时长,从数据源中获取该更新访问请求所请求的缓存数据对应的存储数据,进而根据该存储数据对缓存中该更新访问请求所对应的缓存数据进行更新,从而将对数据源的多个并发请求平滑到第二预设时间间隔内,实现每个延时更新时长内只向数据源发送一个存储数据的获取请求,有效避免了同一时间大量并发更新请求对数据库造成的极大压力,避免了数据库的雪崩发生以及缓存的并发更新,提高了***的稳定性。
另外,相对于现有技术中使用分布式锁或者队列排队进行缓存更新的方式,本发明实施例的上述方法在业务服务器的服务进程内即可实现,不仅实现简单,而且无需依赖额外的外部设备,不会增加额外的存储以及网络通信代价,大大降低了人力、物力成本。
为了进一步提高***的稳定性,避免缓存数据大量并发更新导致数据源异常,如图3提供的另一种缓存更新方法的流程示意图,所述方法可以包括:
S301,在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求。
其中,在接收到针对缓存中缓存数据的访问请求之后,所述方法还可以包括访问请求所对应的缓存数据是否为无效缓存数据的确定步骤,该确定步骤的详细内容可以参考前述图2所示的方法实施例,在此不再赘述。
S303,确定第一预设时间间隔内所述更新访问请求的第一数量。
S305,当所述第一数量超过预设阈值时,按照预设标识规则,确定所述更新访问请求的访问标识。
其中,预设标识规则可以是基于更新访问请求的访问顺序的标识规则。具体的,可以根据更新访问请求所对应的访问时间来确定各更新访问请求的访问顺序,并基于该访问顺序为各更新访问请求标识顺序号,该顺序号即可作为各更新访问请求的访问标识。
预设标识规则还可以是基于更新访问请求所对应的缓存数据的热度的标识规则,其中,缓存数据的热度是指缓存数据被访问的频繁程度。具体的,可以利用访问时间与过期时间的时间差值来表征相应缓存数据的热度,时间差值越大表明更新访问请求所对应的缓存数据的热度越低,反之,时间差值越小表明更新访问请求所对应的缓存数据的热度越高。将时间差值落入预设时间差值范围内的更新访问请求与时间差值未落入该预设时间差值范围内的更新访问请求进行区别标识,例如,时间差值落入预设时间差值范围内的更新访问请求标识为高热度,时间差值未落入该预设时间差值范围内的更新访问请求标识为低热度。
S307,获取所述访问标识为预设目标访问标识的更新访问请求,得到目标更新访问请求。
其中,预设目标访问标识为根据预设标识规则确定的访问标识,当预设标识规则为基于更新访问请求的访问顺序的标识规则时,预设目标访问标识可以为预设顺序号,如顺序号1、顺序号2、顺序号3等等;当预设标识规则为基于更新访问请求所对应的缓存数据的热度的标识规则,预设目标访问标识可以为高热度。
本说明书实施例通过获取访问标识为预设访问标识的更新访问请求得到目标更新访问请求,对更新访问请求进行了过滤,有利于降低后续向数据源的并发请求数量。
S309,为每个所述目标更新访问请求分配不同的延时更新时长,所述延时更新时长不超过第二预设时间间隔。
S311,根据所述目标更新访问请求的延时更新时长,从数据源中获取所述目标更新访问请求的缓存数据所对应的存储数据。
具体的,针对每个目标更新访问请求,可以获取该目标更新访问请求对应的访问时间;计算该访问时间与相对应的目标更新访问请求的延时更新时长的和值,得到该目标更新访问请求对应的请求更新时间;在当前时间达到所述请求更新时间时,从数据源获取该目标更新访问请求的缓存数据所对应的存储数据。
为了进一步提高***的稳定性,避免高并发请求量对数据源带来的压力,可以在当前时间达到所述请求更新时间时,生成所述目标更新访问请求对应的存储数据获取请求;按照预设传输速率向所述数据源发送所述存储数据获取请求,其中,预设传输速率可以根据实际应用中数据源如数据库的处理能力进行设定,一般而言,数据库的处理能力越强,预设传输速率可以设置的越大,反之,数据库的处理能力越弱,预设传输速率可以设置的越小,例如,预设传输速率可以设置为10qps(Queries Per Second);接收所述数据源基于所述存储数据获取请求返回的所述存储数据。
S313,根据所述存储数据对所述缓存中所述目标更新访问请求所对应的缓存数据进行更新。
本发明实施例将对数据源的多个并发请求进行过滤,并对过滤后的并发请求平滑到第二预设时间间隔内,实现每个延时更新时长内只向数据源发送一个存储数据的获取请求,有效避免了同一时间大量并发更新请求对数据库造成的极大压力,避免了数据库的雪崩发生;并且本发明实施例的上述方法无需依赖额外的外部设备,不会增加额外的存储以及网络通信代价,大大降低了人力、物力成本。
与上述几种实施例提供的缓存更新方法相对应,本发明实施例还提供一种缓存更新装置,由于本发明实施例提供的缓存更新装置与上述几种实施例提供的缓存更新方法相对应,因此前述缓存更新方法的实施方式也适用于本实施例提供的缓存更新装置,在本实施例中不再详细描述。
请参阅图4,其所示为本发明实施例提供的一种缓存更新装置的结构示意图,该装置具有实现上述方法实施例中缓存更新方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图4所示,该装置可以包括:
第一确定模块410,用于在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;
第二确定模块420,用于确定第一预设时间间隔内所述更新访问请求的第一数量;
分配模块430,用于在所述第一数量超过预设阈值时,为每个所述更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;
第一获取模块440,用于根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据;
更新模块450,用于根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新。
作为一个可选的实施方式,分配模块430可以包括:
划分模块,用于将所述第二预设时间间隔划分为所述第一数量个子时间间隔;
分配子模块,用于为每个所述更新访问请求分配不同数量个所述子时间间隔;
第一计算模块,用于针对每个所述更新访问请求,计算所述更新访问请求所对应数量的所述子时间间隔的和值,得到所述更新访问请求的延时更新时长。
作为一个可选的实施方式,第一获取模块440可以包括:
第二获取模块,用于针对每个所述更新访问请求,获取所述更新访问请求对应的访问时间;
第二计算模块,用于计算所述访问时间与所述更新访问请求的延时更新时长的和值,得到所述更新访问请求对应的请求更新时间;
第三获取模块,用于在当前时间达到所述请求更新时间时,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据。
作为一个可选的实施方式,第三获取模块可以包括:
生成模块,用于在当前时间达到所述请求更新时间时,生成所述更新访问请求对应的存储数据获取请求;
发送模块,用于按照预设传输速率向所述数据源发送所述存储数据获取请求;
接收模块,用于接收所述数据源基于所述存储数据获取请求返回的所述存储数据。
作为一个可选的实施方式,如图5提供的另一种缓存更新装置的结构示意图,该装置还可以包括:
第三确定模块460,用于按照预设标识规则,确定所述更新访问请求的访问标识;
第四获取模块470,用于获取所述访问标识为预设目标访问标识的更新访问请求,得到目标更新访问请求;
相应的,所述分配模块430在为每个所述更新访问请求分配不同的延时更新时长时,具体为每个所述目标更新访问请求分配不同的延时更新时长。
作为一个可选的实施方式,所述装置还可以包括:
第五获取模块,用于获取所述访问请求的访问时间;
第六获取模块,用于获取所述访问请求所请求的缓存数据的写入时间和预设有效时长;
第三计算模块,用于计算所述写入时间与预设有效时长的和值,得到过期时间;
第一判断模块,用于判断所述访问时间是否超过所述过期时间;
第四确定模块,用于在所述第一判断模块判断的结果为是时,确定所述访问请求所对应的缓存数据为无效缓存数据。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的缓存更新装置将对数据源的多个并发请求平滑到第二预设时间间隔内,实现每个延时更新时长内只向数据源发送一个存储数据的获取请求,有效避免了同一时间大量并发更新请求对数据库造成的极大压力,避免了数据库的雪崩发生以及缓存的并发更新,提高了***的稳定性。
另外,相对于现有技术中使用分布式锁或者队列排队进行缓存更新的方式,本发明实施例的上述方法在业务服务器的服务进程内即可实现,不仅实现简单,而且无需依赖额外的外部设备,不会增加额外的存储以及网络通信代价,大大降低了人力、物力成本。
本发明实施例提供了一种业务服务器,该服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的缓存更新方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及缓存更新。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图6是本发明实施例提供的运行一种缓存更新方法的服务器的硬件结构框图,如图6所示,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,CPU)610(处理器610可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器630,一个或一个以上存储应用程序623或数据622的存储介质620(例如一个或一个以上海量存储设备)。其中,存储器630和存储介质620可以是短暂存储或持久存储。存储在存储介质620的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器610可以设置为与存储介质620通信,在服务器600上执行存储介质620中的一系列指令操作。服务器600还可以包括一个或一个以上电源660,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口640,和/或,一个或一个以上操作***621,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口640可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器600的通信供应商提供的无线网络。在一个实例中,输入输出接口640包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口640可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器600还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
本发明的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于服务器之中以保存用于实现一种缓存更新方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的缓存更新方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存更新方法,其特征在于,所述方法包括:
在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;
确定第一预设时间间隔内所述更新访问请求的第一数量;
当所述第一数量超过预设阈值时,为每个所述更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;
根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据;
根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新。
2.根据权利要求1所述的缓存更新方法,其特征在于,所述为每个所述更新访问请求分配不同的延时更新时长包括:
将所述第二预设时间间隔划分为所述第一数量个子时间间隔;
为每个所述更新访问请求分配不同数量个所述子时间间隔;
针对每个所述更新访问请求,计算所述更新访问请求所对应数量的所述子时间间隔的和值,得到所述更新访问请求的延时更新时长。
3.根据权利要求1所述的缓存更新方法,其特征在于,所述根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据包括:
针对每个所述更新访问请求,获取所述更新访问请求对应的访问时间;
计算所述访问时间与所述更新访问请求的延时更新时长的和值,得到所述更新访问请求对应的请求更新时间;
在当前时间达到所述请求更新时间时,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据。
4.根据权利要求3所述的缓存更新方法,其特征在于,所述在当前时间达到所述请求更新时间时,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据包括:
在当前时间达到所述请求更新时间时,生成所述更新访问请求对应的存储数据获取请求;
按照预设传输速率向所述数据源发送所述存储数据获取请求;
接收所述数据源基于所述存储数据获取请求返回的所述存储数据。
5.根据权利要求1所述的缓存更新方法,其特征在于,在为每个所述更新访问请求分配不同的延时更新时长之前,所述方法还包括:
按照预设标识规则,确定所述更新访问请求的访问标识;
获取所述访问标识为预设目标访问标识的更新访问请求,得到目标更新访问请求;
相应的,所述为每个所述更新访问请求分配不同的延时更新时长包括:
为每个所述目标更新访问请求分配不同的延时更新时长。
6.根据权利要求1所述的缓存更新方法,其特征在于,在将所述访问请求中所对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求之前,所述方法还包括:
获取所述访问请求的访问时间;
获取所述访问请求所请求的缓存数据的写入时间和预设有效时长;
计算所述写入时间与预设有效时长的和值,得到过期时间;
判断所述访问时间是否超过所述过期时间;
在判断的结果为是时,确定所述访问请求所对应的缓存数据为无效缓存数据。
7.一种缓存更新装置,其特征在于,所述装置包括:
第一确定模块,用于在接收到针对缓存中缓存数据的访问请求时,将所述访问请求中对应的缓存数据为无效缓存数据的访问请求确定为更新访问请求;
第二确定模块,用于确定第一预设时间间隔内所述更新访问请求的第一数量;
分配模块,用于在所述第一数量超过预设阈值时,分别为所述更新访问请求分配不同的延时更新时长;所述延时更新时长不超过第二预设时间间隔;
第一获取模块,用于根据所述更新访问请求的延时更新时长,从数据源中获取所述更新访问请求的缓存数据所对应的存储数据;
更新模块,用于根据所述存储数据对所述缓存中所述更新访问请求所对应的缓存数据进行更新。
8.根据权利要求7所述的缓存更新装置,其特征在于,所述分配模块包括:
划分模块,用于将所述第二预设时间间隔划分为所述第一数量个子时间间隔;
分配子模块,用于为每个所述更新访问请求分配不同数量个所述子时间间隔;
第一计算模块,用于针对每个所述更新访问请求,计算所述更新访问请求所对应数量的所述子时间间隔的和值,得到所述更新访问请求的延时更新时长。
9.一种业务服务器,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1~6中任一项所述的缓存更新方法。
10.一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1~6任一项所述的缓存更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911081374.XA CN110837513B (zh) | 2019-11-07 | 2019-11-07 | 一种缓存更新方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911081374.XA CN110837513B (zh) | 2019-11-07 | 2019-11-07 | 一种缓存更新方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837513A true CN110837513A (zh) | 2020-02-25 |
CN110837513B CN110837513B (zh) | 2023-05-12 |
Family
ID=69574586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911081374.XA Active CN110837513B (zh) | 2019-11-07 | 2019-11-07 | 一种缓存更新方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837513B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737298A (zh) * | 2020-06-19 | 2020-10-02 | 中国工商银行股份有限公司 | 基于分布式存储的缓存数据管控方法及装置 |
CN111898054A (zh) * | 2020-08-07 | 2020-11-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 反向缓存控制方法及***、服务端、客户端和业务端 |
CN112035526A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 数据缓存方法、装置、设备及可读存储介质 |
CN113486037A (zh) * | 2021-07-27 | 2021-10-08 | 北京京东乾石科技有限公司 | 更新缓存数据的方法、管理器和缓存服务器 |
CN113806651A (zh) * | 2021-09-18 | 2021-12-17 | 深圳市酷开网络科技股份有限公司 | 一种数据缓存方法、装置、服务器及存储介质 |
CN114528230A (zh) * | 2022-04-21 | 2022-05-24 | 飞腾信息技术有限公司 | 缓存数据处理方法、装置及电子设备 |
WO2022143692A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 数据预取的方法、装置和设备 |
CN114827281A (zh) * | 2022-03-10 | 2022-07-29 | 北京百度网讯科技有限公司 | 一种网络请求的发送及接收方法、***及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387943A (zh) * | 2008-09-08 | 2009-03-18 | 创新科存储技术(深圳)有限公司 | 一种存储设备以及缓存数据的方法 |
CN102117248A (zh) * | 2011-03-09 | 2011-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存***和在缓存***中缓存数据的方法 |
CN105138587A (zh) * | 2015-07-31 | 2015-12-09 | 小米科技有限责任公司 | 数据访问方法、装置和*** |
CN105373369A (zh) * | 2014-08-25 | 2016-03-02 | 北京皮尔布莱尼软件有限公司 | 一种异步缓存方法、服务器及*** |
CN106326389A (zh) * | 2016-08-17 | 2017-01-11 | 深圳市金证科技股份有限公司 | 一种基于数据缓存的业务请求处理方法及*** |
CN106407347A (zh) * | 2016-09-05 | 2017-02-15 | 北京奇虎科技有限公司 | 一种缓存数据的方法和装置 |
CN106844784A (zh) * | 2017-03-14 | 2017-06-13 | 上海网易小额贷款有限公司 | 数据缓存方法、装置及计算机可读存储介质 |
CN107634817A (zh) * | 2016-07-19 | 2018-01-26 | 华为技术有限公司 | 用于数据传输的方法和装置 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN110008257A (zh) * | 2019-04-10 | 2019-07-12 | 深圳市腾讯计算机***有限公司 | 数据处理方法、装置、***、计算机设备和存储介质 |
-
2019
- 2019-11-07 CN CN201911081374.XA patent/CN110837513B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387943A (zh) * | 2008-09-08 | 2009-03-18 | 创新科存储技术(深圳)有限公司 | 一种存储设备以及缓存数据的方法 |
CN102117248A (zh) * | 2011-03-09 | 2011-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存***和在缓存***中缓存数据的方法 |
CN105373369A (zh) * | 2014-08-25 | 2016-03-02 | 北京皮尔布莱尼软件有限公司 | 一种异步缓存方法、服务器及*** |
CN105138587A (zh) * | 2015-07-31 | 2015-12-09 | 小米科技有限责任公司 | 数据访问方法、装置和*** |
CN107634817A (zh) * | 2016-07-19 | 2018-01-26 | 华为技术有限公司 | 用于数据传输的方法和装置 |
CN106326389A (zh) * | 2016-08-17 | 2017-01-11 | 深圳市金证科技股份有限公司 | 一种基于数据缓存的业务请求处理方法及*** |
CN106407347A (zh) * | 2016-09-05 | 2017-02-15 | 北京奇虎科技有限公司 | 一种缓存数据的方法和装置 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
CN106844784A (zh) * | 2017-03-14 | 2017-06-13 | 上海网易小额贷款有限公司 | 数据缓存方法、装置及计算机可读存储介质 |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN110008257A (zh) * | 2019-04-10 | 2019-07-12 | 深圳市腾讯计算机***有限公司 | 数据处理方法、装置、***、计算机设备和存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737298A (zh) * | 2020-06-19 | 2020-10-02 | 中国工商银行股份有限公司 | 基于分布式存储的缓存数据管控方法及装置 |
CN111737298B (zh) * | 2020-06-19 | 2024-04-26 | 中国工商银行股份有限公司 | 基于分布式存储的缓存数据管控方法及装置 |
CN111898054A (zh) * | 2020-08-07 | 2020-11-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 反向缓存控制方法及***、服务端、客户端和业务端 |
CN112035526A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 数据缓存方法、装置、设备及可读存储介质 |
CN112035526B (zh) * | 2020-09-01 | 2023-09-22 | 中国银行股份有限公司 | 数据缓存方法、装置、设备及可读存储介质 |
WO2022143692A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 数据预取的方法、装置和设备 |
CN113486037A (zh) * | 2021-07-27 | 2021-10-08 | 北京京东乾石科技有限公司 | 更新缓存数据的方法、管理器和缓存服务器 |
CN113806651A (zh) * | 2021-09-18 | 2021-12-17 | 深圳市酷开网络科技股份有限公司 | 一种数据缓存方法、装置、服务器及存储介质 |
CN113806651B (zh) * | 2021-09-18 | 2024-05-24 | 深圳市酷开网络科技股份有限公司 | 一种数据缓存方法、装置、服务器及存储介质 |
CN114827281A (zh) * | 2022-03-10 | 2022-07-29 | 北京百度网讯科技有限公司 | 一种网络请求的发送及接收方法、***及装置 |
CN114827281B (zh) * | 2022-03-10 | 2023-09-29 | 北京百度网讯科技有限公司 | 一种网络请求的发送及接收方法、***及装置 |
CN114528230A (zh) * | 2022-04-21 | 2022-05-24 | 飞腾信息技术有限公司 | 缓存数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110837513B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837513B (zh) | 一种缓存更新方法、装置、服务器及存储介质 | |
JP6971294B2 (ja) | コンピュータ処理のためのリソース割当て | |
US20200328984A1 (en) | Method and apparatus for allocating resource | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN102255926B (zh) | MapReduce***中的任务分配方法、***及装置 | |
US20220156115A1 (en) | Resource Allocation Method And Resource Borrowing Method | |
CN110209348B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
EP4020153A1 (en) | Cache space management method and device | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
US20140372725A1 (en) | Allocation of distributed data structures | |
CN110297698B (zh) | 一种多优先级动态限流方法、装置、服务器及存储介质 | |
CN111858055B (zh) | 任务处理方法、服务器及存储介质 | |
CN113037529B (zh) | 一种预留带宽分配方法、装置、设备及存储介质 | |
US10359945B2 (en) | System and method for managing a non-volatile storage resource as a shared resource in a distributed system | |
US20200358715A1 (en) | Resource sharing method, computer device, and storage medium | |
CN104301257A (zh) | 一种资源分配方法、装置及设备 | |
CN112269661B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
EP3392754B1 (en) | Method and apparatus for managing storage device | |
CN111177019A (zh) | 一种内存分配管理方法、装置、设备及存储介质 | |
CN111984425A (zh) | 用于操作***的内存管理方法、装置及设备 | |
CN110798507B (zh) | 一种dhcp地址分配记忆的方法与*** | |
US10237233B2 (en) | Allocating identifiers with minimal fragmentation | |
CN109298939B (zh) | 分布式***的访问频率控制方法、装置、***及服务器 | |
CN115794305B (zh) | 虚拟机内存的调整方法和装置、存储介质及电子装置 | |
CN110489356B (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 |