一种基于缓存的数据访问方法及装置制造方法及图纸

技术编号:15262651 阅读:80 留言:0更新日期:2017-05-03 18:30
本发明专利技术实施例提供一种基于缓存的数据访问方法及装置,该方法包括:当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;若是,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;若所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据,将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端。在保证提升业务访问速度、降低后端资源服务器数据开销的同时,可以避免当缓存“有效期”失效后且后端资源服务器数据出现故障时无法正常提供服务甚至雪崩的问题。

【技术实现步骤摘要】

本专利技术涉及网络
,尤其涉及一种基于缓存的数据访问方法及装置。
技术介绍
目前缓存的使用技术通常是为了提升访问速度,当调用一个后端资源服务器数据(如:访问数据库、接口)速度相对较慢或者开销相对较大时,会在调用资源后,往缓存写入该数据并设置有效期,在有效期范围内再次访问此数据,会直接从缓存中读取,从而达到提升访问速度和降低后端资源服务器数据开销的目的。当缓存失效后,会再次调用后端资源服务器数据,然后将该数据写入缓存且设置有效期。现有的缓存架构可以提升访问速度、降低后端资源服务器数据开销,但当缓存有效期失效且后端资源服务器数据出现故障时,会导致无法获取到数据内容,同时如果在高并发的场景下,由于缓存失效会大量的请求后端资源服务器数据,造成雪崩。
技术实现思路
本专利技术实施例提供一种基于缓存的数据访问方法及装置,以在保证提升业务访问速度、降低后端资源服务器数据开销的同时,解决当缓存“有效期”失效后且后端资源服务器数据出现故障时无法正常提供服务甚至雪崩的问题。一方面,本专利技术实施例提供了一种基于缓存的数据访问方法,所述方法包括:当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;若缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;若所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据,将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据。另一方面,本专利技术实施例提供了一种基于缓存的数据访问装置,所述装置包括:第一判断单元,用于当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;第二判断单元,用于若所述第一判断单元判断出缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;加锁处理单元,用于若所述第二判断单元判断出所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据;缓存处理单元,用于将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端。上述技术方案具有如下有益效果:在保证提升业务访问速度、降低后端资源服务器数据开销的同时,可以避免当缓存“有效期”失效后且后端资源服务器数据出现故障时无法正常提供服务甚至雪崩的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一种基于缓存的数据访问方法流程图;图2为本专利技术实施例一种基于缓存的数据访问装置结构示意图;图3为本专利技术应用实例一种基于缓存的数据访问方法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术实施例一种基于缓存的数据访问方法流程图,所述方法包括:101、当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;102、若缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;103、若所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据,将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据。优选地,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期之后,所述方法还包括:若没有缓存所述访问请求对应的缓存数据,或者所述访问请求对应的缓存数据超过设定的缓存有效期,则获取资源服务器数据,将从资源服务器获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端。优选地,判断所述缓存数据是否超过设定的预期有效期之后,所述方法还包括:若所述缓存数据未超过设定的预期有效期,则直接将所述访问请求对应的缓存数据发送给所述客户端。优选地,所述方法还包括:加锁获取资源服务器数据时,若当前的访问请求加锁失败,或者当前的访问请求加锁成功但资源服务器工作状态异常,导致未能从资源服务器获取到所述访问请求对应的数据内容,则直接将所述访问请求对应的缓存数据发送给所述客户端。优选地,所述预期有效期的时间长度为X秒,是指预期X秒更新一次缓存数据;所述缓存有效期比所述预期有效期的时间长度X秒多Y秒;所述锁有效期的时间长度为Z秒;其中,X、Y、Z均为正数,Y大于4倍的Z,Y取值在300-7200之间。对应于上述方法实施例,如图2所示,为本专利技术实施例一种基于缓存的数据访问装置结构示意图,所述装置包括:第一判断单元21,用于当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;第二判断单元22,用于若所述第一判断单元21判断出缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;加锁处理单元23,用于若所述第二判断单元22判断出缓存数据超过设定的预期有效期,则加锁获取资源服务器数据;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据;缓存处理单元24,用于将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端。优选地,还包括:数据获取单元25,用于若所述第一判断单元21判断出没有缓存所述访问请求对应的缓存数据,或者本文档来自技高网...

【技术保护点】
一种基于缓存的数据访问方法,其特征在于,所述方法包括:当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;若缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;若所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据,将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据。

【技术特征摘要】
1.一种基于缓存的数据访问方法,其特征在于,所述方法包括:当应用服务器接收到客户端发起的访问请求时,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期;若缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期,则进一步判断所述缓存数据是否超过设定的预期有效期,其中,所述缓存有效期大于所述预期有效期;若所述缓存数据超过设定的预期有效期,则加锁获取资源服务器数据,将从资源服务器成功获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端;所述加锁获取资源服务器数据包括:针对相同数据内容的多个访问请求,并发加锁时,仅一个访问请求加锁成功,其他访问请求均加锁失败;在锁有效期内以及解锁前,其他访问请求均加锁失败;仅加锁成功的访问请求向资源服务器获取数据。2.如权利要求1所述基于缓存的数据访问方法,其特征在于,判断是否缓存有所述访问请求对应的缓存数据且未超过设定的缓存有效期之后,所述方法还包括:若没有缓存所述访问请求对应的缓存数据,或者所述访问请求对应的缓存数据超过设定的缓存有效期,则获取资源服务器数据,将从资源服务器获取到的所述访问请求对应的数据内容缓存、并重置缓存有效期的失效时间,以及将所述数据内容发送给所述客户端。3.如权利要求2所述基于缓存的数据访问方法,其特征在于,判断所述缓存数据是否超过设定的预期有效期之后,所述方法还包括:若所述缓存数据未超过设定的预期有效期,则直接将所述访问请求对应的缓存数据发送给所述客户端。4.如权利要求3所述基于缓存的数据访问方法,其特征在于,所述方法还包括:加锁获取资源服务器数据时,若当前的访问请求加锁失败,或者当前的访问请求加锁成功但资源服务器工作状态异常,导致未能从资源服务器获取到所述访问请求对应的数据内容,则直接将所述访问请求对应的缓存数据发送给所述客户端。5.如权利要求1所述基于缓存的数据访问方法,其特征在于,所述预期有效期的时间长度为X秒,是指预期X秒更新一次缓存数据;所述缓存有效期比所述预期有效期的时间长度X秒多Y秒;所述锁有效期的时间长度为Z秒;其中,X、Y、Z均为正数,Y大于4倍的Z,Y取值在300-7200之间。6.一种基于缓存的数据...

【专利技术属性】
技术研发人员:李枨煊
申请(专利权)人:微梦创科网络科技中国有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1