一种缓存数据访问方法、装置、设备以及存储介质制造方法及图纸

技术编号:38041078 阅读:17 留言:0更新日期:2023-06-30 11:07
本申请公开了一种缓存数据访问方法,用以解决采用现有数据访问方法,在遇到大量的并发数据访问请求时,可能会出现缓存击穿或者缓存雪崩,进而可能会导致服务宕机的问题。方法包括:根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;当判断结果为否时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据;当判断结果为是时,确定所述缓存中的目标数据是否过期;当确定缓存中的目标数据未过期时,则在缓存中读取目标数据;当确定缓存中的目标数据已过期时,在确定第一请求数量小于预设阈值后,在数据库中查找与数据访问请求对应的目标数据。求对应的目标数据。求对应的目标数据。

【技术实现步骤摘要】
一种缓存数据访问方法、装置、设备以及存储介质


[0001]本申请涉及计算机
,尤其涉及一种缓存数据访问方法、装置、设备以及存储介质。

技术介绍

[0002]随着计算机技术的飞速发展,各类应用的用户量也开始飞速增长,用户量的激增,同时也对应用系统的数据存储层带来了极大的访问压力。
[0003]在现有技术中,出于对应用性能的考虑,大多数应用会利用缓存技术,通过缓存存储应用经常被访问的数据,进而在访问流量到达数据存储层(比如数据库)之前,通过查询缓存数据的方式减轻数据库压力从而提高系统整体的查询性能与吞吐量。
[0004]然而现有的数据缓存技术存在的问题在于,当原始数据发生修改,或者由于缓存到期需要对缓存数据进行更新时,由于在缓存层中无法获取到请求所需要的参数,因而系统将会进一步地访问数据库来进行数据查询,如果此时恰好遇到大量的并发数据访问请求,这些数据访问请求将直接穿过缓存访问到后端数据库,从而导致服务或数据库压力陡增,最终将降低系统的吞吐量和响应速度,严重的甚至会导致服务宕机,进而造成缓存击穿或者雪崩的现象。
[0005]由此可见,目前亟需一种可以保证系统稳定性的缓存数据访问方法。

技术实现思路

[0006]本申请实施例提供一种缓存数据访问方法,用以解决采用现有数据访问方法,在遇到大量的并发数据访问请求时,可能会出现缓存击穿或者缓存雪崩,进而可能会导致服务宕机的问题。
[0007]本申请实施例还提供一种缓存数据访问装置,用以解决采用现有数据访问方法,在遇到大量的并发数据访问请求时,可能会出现缓存击穿或者缓存雪崩,进而可能会导致服务宕机的问题。
[0008]本申请实施例还提供一种缓存数据访问设备,用以解决采用现有数据访问方法,在遇到大量的并发数据访问请求时,可能会出现缓存击穿或者缓存雪崩,进而可能会导致服务宕机的问题。
[0009]本申请实施例还提供一种计算机可读存储介质,用以解决采用现有数据访问方法,在遇到大量的并发数据访问请求时,可能会出现缓存击穿或者缓存雪崩,进而可能会导致服务宕机的问题。
[0010]本申请实施例采用下述技术方案:
[0011]一种缓存数据访问方法,包括:根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;当判断结果为否时,确定当前针对数据库的第一请求数量,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访
问请求对应的数据请求方,其中,所述第一请求数量为当前针对所述数据库的所有并行访问请求的数量;当判断结果为是时,确定所述缓存中的目标数据是否过期;当确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方;当确定所述缓存中的目标数据已过期时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。
[0012]一种缓存数据访问装置,包括:缓存命中判断单元,用于根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;数据库查询单元,用于当缓存命中判断单元得到的判断结果为否时,确定当前针对数据库的第一请求数量,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访问请求对应的数据请求方,其中,所述第一请求数量为当前针对所述数据库的所有并行访问请求的数量;过期查询单元,用于当缓存命中判断判断结果为是时,确定所述缓存中的目标数据是否过期;缓存查询单元,用于当过期查询单元确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方;数据库查询单元,用于当过期查询单元确定所述缓存中的目标数据已过期时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。
[0013]一种缓存数据访问设备,包括:
[0014]处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;当判断结果为否时,确定当前针对数据库的第一请求数量,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访问请求对应的数据请求方,其中,所述第一请求数量为当前针对所述数据库的所有并行访问请求的数量;当判断结果为是时,确定所述缓存中的目标数据是否过期;当确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方;当确定所述缓存中的目标数据已过期时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。
[0015]一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;当判断结果为否时,确定当前针对数据库的第一请求数量,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访问请求对应的数据请求方,其中,所述第一请求数量为当前针对所述数据库的所有并行访问请求的数量;当判断结果为是时,确定所述缓存中的目标数据是否过期;当确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方;当确定所述缓存中的目
标数据已过期时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。
[0016]本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0017]采用本申请实施例提供的一种缓存数据访问方法,系统在接收到数据访问请求后,首先判断缓存中是否存在与所述数据访问请求对应的目标数据,如果不存在,即未命中缓存,在穿透缓存访问后端数据库之前,将会确定当前针对数据的并行访问请求数量,如果当前针对数据库的并行访问请求数量小于预设访问阈值,即说明此时数据库的访问量未达到阈值,新增访问不会对数据库正常运行造成影响,则在这种情况下可以将数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访问请求对应的数据请求方;而如果判断缓存中存在目标数据,即命中缓存,则进一步判断目标数据是否过期,如果未过期,则在缓存中读取目标数据,并将目标数据反馈至数据请求方,如果已过期,则同样需要确定当前针本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存数据访问方法,其特征在于,包括:根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;当判断结果为否时,确定当前针对数据库的第一请求数量,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据,并将所述目标数据反馈至所述数据访问请求对应的数据请求方,其中,所述第一请求数量为当前针对所述数据库的所有并行访问请求的数量;当判断结果为是时,确定所述缓存中的目标数据是否过期;当确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方;当确定所述缓存中的目标数据已过期时,在确定所述第一请求数量小于预设阈值后,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。2.根据权利要求1所述的方法,其特征在于,所述当确定所述缓存中的目标数据未过期时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方,具体包括:判断所述缓存中的目标数据是否需要刷新;当判断所述目标数据不需要刷新时,则在所述缓存中读取所述目标数据;当判断所述目标数据需要刷新时,根据所述第一请求数量,确定是否对所述目标数据进行更新;当所述第一请求数量小于预设阈值时,则在数据库中读取与所述数据访问请求对应的更新数据,将所述更新数据反馈至所述数据请求方,并根据所述更新数据,对缓存中的目标数据进行更新;当所述第一请求数量大于预设阈值时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方。3.根据权利要求2所述的方法,其特征在于,所述当所述第一请求数量大于预设阈值时,则在所述缓存中读取目标数据,并将所述目标数据反馈至所述数据请求方后,还包括:判断所述数据访问请求是否获取到更新锁;当判断结果为是时,则在数据库中读取与所述数据访问请求对应的更新数据,并根据所述更新数据对缓存中的目标数据进行更新。4.根据权利要求2所述的方法,其特征在于,所述判断所述缓存中的目标数据是否需要刷新,具体包括:确定读取所述目标数据的第二访问请求与所述数据访问请求之间的时间间隔,其中,所述第二访问请求为在所述数据访问请求前一条接收到的、针对所述目标数据的访问请求;判断所述时间间隔是否大于预设的刷新间隔时间;当判断结果为是时,则确定所述缓存中的目标数据需要刷新;当判断结果为否时,则确定所述缓存中的目标数据不需要刷新。5.根据权利要求1所述的方法,其特征在于,还包括:当确定所述缓存中的目标数据已过期,且确定所述第一请求数量大于预设阈值时,判
断所述数据访问请求是否获取到读取锁;当判断结果为是时,将所述数据访问请求发送至数据库,在数据库中查找与所述数据访问请求对应的目标数据。6.一种缓存数据访问装置,其特征在于,包括:缓存命中判断单元,用于根据接收到的数据访问请求,判断缓存中是否存在与所述数据访问请求对应的目标数据;数据库查询单元,用于当缓存命中判断...

【专利技术属性】
技术研发人员:龙敏
申请(专利权)人:杭州隆埠科技有限公司
类型:发明
国别省市:

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

1