一种数据的缓存方法、装置、存储介质及电子设备制造方法及图纸

技术编号:28226006 阅读:18 留言:0更新日期:2021-04-28 10:00
本发明专利技术公开了一种数据的缓存方法、装置、存储介质及电子设备。该方法包括:接收客户端发出的访问请求,并获取所述访问请求的请求地址;访问cdn缓存,若所述访问请求命中,则返回请求结果;若未命中,则获取所述访问请求的版本号,并将所述版本号和所述请求地址作为请求标识对redis缓存进行访问,若命中则返回请求结果;若仍未命中,则以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识;以所述锁标识访问mysql数据库缓存,若命中则刷新redis缓存,并返回请求结果。本发明专利技术公开的技术方案,可以提高前端服务器的性能,同时降低了redis和mysql的使用成本。时降低了redis和mysql的使用成本。时降低了redis和mysql的使用成本。

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


[0001]本专利技术涉及互联网
,尤其涉及一种数据的缓存方法、装置、存储介质及电子设备。

技术介绍

[0002]随着互联网的快速发展,人们上网的方式也变得十分便捷,网络访问的需求也日益增加,对网站服务器造成了很大的压力,而这些网络访问通常要求对数据能够进行实时处理,还要求能够进行后续的处理分析。面对多种设备,多个用户的高并发访问,如何降低服务器的负载,快速响应客户端的请求,对数据进行实时处理并保存,成为一个难题。因此,如何提高前端服务器的性能,降低数据库的使用成本,是本领域技术人员亟待解决的技术难题。

技术实现思路

[0003]有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是,现有技术中并发访问数量增大对于前端服务器带来的压力,并且对于redis和mysql的使用成本较高的问题。本方案通过设置三级缓存,第一级采用cdn缓存,第二级采用redis缓存,第三级采用mysql数据库缓存,来提高前端服务器的性能,同时降低了redis和mysql的使用成本。
[0004]为实现上述目的,本专利技术提供了一种数据的缓存方法、装置、存储介质及电子设备。
[0005]在本专利技术的较佳实施方式中,本申请实施例提供了一种数据的缓存方法,所述方法由前端服务器执行,所述方法包括:
[0006]接收客户端发出的访问请求,并获取所述访问请求的请求地址;
[0007]访问cdn缓存,若所述访问请求命中,则返回请求结果;
[0008]若未命中,则获取所述访问请求的版本号,并将所述版本号和所述请求地址作为请求标识对redis缓存进行访问,若命中则返回请求结果;
[0009]若仍未命中,则以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识;
[0010]以所述锁标识访问mysql数据库缓存,若命中则刷新redis缓存,并返回请求结果。
[0011]进一步的,在所述以所述锁标识访问mysql数据库缓存之后,所述方法还包括:
[0012]若未命中,则将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果。
[0013]进一步的,在将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果之后,所述方法还包括:
[0014]根据所返回的请求结果更新所述mysql数据库缓存;并根据所返回的请求结果更新redis缓存。
[0015]进一步的,在所述以所述请求标识对所述访问请求进行加锁处理,并以所述请求
标识作为锁标识之后,所述方法还包括:
[0016]确定锁的有效期;
[0017]若在所述锁的有效期内没有返回数据,则返回错误信息,并释放此锁资源。
[0018]进一步的,所述方法还包括:
[0019]若检测到新数据的添加事件,确定所述新数据的类型为及时数据类型或者为非及时数据类型;
[0020]若为及时数据类型,则将所述新数据同步添加至cdn缓存、redis缓存以及mysql数据库缓存中;
[0021]若为非及时数据类型,则将所述新数据添加至处理队列中,以对所述新数据进行异步添加。
[0022]进一步的,所述cdn缓存的缓存时间为预设固定时长;
[0023]若待缓存数据为新数据,则所述redis缓存的缓存时间为第一时长;若待缓存数据为从mysql数据库缓存更新至redis缓存中的数据,则所述redis缓存的缓存时间为第二时长。
[0024]进一步的,所述方法还包括:
[0025]获取接口的启用状态是否更改为过期;
[0026]若为未过期,则所述接口在mysql数据库缓存的缓存时间为永久;
[0027]若更改为过期,则所述接口在mysql数据库缓存的缓存时间为预设缓存时长。
[0028]在本专利技术的另一较佳实施方式中,本申请实施例提供了一种数据的缓存装置,所述装置配置于前端服务器,所述装置包括:
[0029]访问请求接收模块,用于接收客户端发出的访问请求,并获取所述访问请求的请求地址;
[0030]cdn缓存访问模块,用于访问cdn缓存,若所述访问请求命中,则返回请求结果;
[0031]redis缓存访问模块,用于若未命中,则获取所述访问请求的版本号,并将所述版本号和所述请求地址作为请求标识对redis缓存进行访问,若命中则返回请求结果;
[0032]加锁处理模块,用于若仍未命中,则以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识;
[0033]mysql数据库缓存访问模块,用于以所述锁标识访问mysql数据库缓存,若命中则刷新redis缓存,并返回请求结果。
[0034]可选的,所述装置还用于:
[0035]在所述以所述锁标识访问mysql数据库缓存之后,所述方法还包括:
[0036]若未命中,则将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果。
[0037]进一步的,在将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果之后,所述装置还用于:
[0038]根据所返回的请求结果更新所述mysql数据库缓存;并根据所返回的请求结果更新redis缓存。
[0039]进一步的,在所述以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识之后,所述装置还用于:
[0040]确定锁的有效期;
[0041]若在所述锁的有效期内没有返回数据,则返回错误信息,并释放此锁资源。
[0042]进一步的,所述装置还用于:
[0043]若检测到新数据的添加事件,确定所述新数据的类型为及时数据类型或者为非及时数据类型;
[0044]若为及时数据类型,则将所述新数据同步添加至cdn缓存、redis缓存以及mysql数据库缓存中;
[0045]若为非及时数据类型,则将所述新数据添加至处理队列中,以对所述新数据进行异步添加。
[0046]进一步的,所述cdn缓存的缓存时间为预设固定时长;
[0047]若待缓存数据为新数据,则所述redis缓存的缓存时间为第一时长;若待缓存数据为从mysql数据库缓存更新至redis缓存中的数据,则所述redis缓存的缓存时间为第二时长。
[0048]进一步的,所述装置还用于:
[0049]获取接口的启用状态是否更改为过期;
[0050]若为未过期,则所述接口在mysql数据库缓存的缓存时间为永久;
[0051]若更改为过期,则所述接口在mysql数据库缓存的缓存时间为预设缓存时长。
[0052]在本专利技术的另一较佳实施方式中,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例所述的数据的缓存方法。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据的缓存方法,其特征在于,所述方法由前端服务器执行,所述方法包括:接收客户端发出的访问请求,并获取所述访问请求的请求地址;访问cdn缓存,若所述访问请求命中,则返回请求结果;若未命中,则获取所述访问请求的版本号,并将所述版本号和所述请求地址作为请求标识对redis缓存进行访问,若命中则返回请求结果;若仍未命中,则以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识;以所述锁标识访问mysql数据库缓存,若命中则刷新redis缓存,并返回请求结果。2.如权利要求1所述的方法,其特征在于,在所述以所述锁标识访问mysql数据库缓存之后,所述方法还包括:若未命中,则将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果。3.如权利要求2所述的方法,其特征在于,在将所述访问请求发送至后端服务器,供所述后端服务器通过网络获取请求结果,并返回请求结果之后,所述方法还包括:根据所返回的请求结果更新所述mysql数据库缓存;并根据所返回的请求结果更新redis缓存。4.如权利要求1所述的方法,其特征在于,在所述以所述请求标识对所述访问请求进行加锁处理,并以所述请求标识作为锁标识之后,所述方法还包括:确定锁的有效期;若在所述锁的有效期内没有返回数据,则返回错误信息,并释放此锁资源。5.如权利要求1所述的方法,其特征在于,所述方法还包括:若检测到新数据的添加事件,确定所述新数据的类型为及时数据类型或者为非及时数据类型;若为及时数据类型,则将所述新数据同步添加至cdn缓存、redis缓存以及mysql数据库缓存中;若为非及时数据类型,则将所述新数据添加至处理队列中,以对所述新数据进行异步添加。6.如权利要求5所...

【专利技术属性】
技术研发人员:沙烨金仲伟张垒李乾猛
申请(专利权)人:上海观察者信息技术有限公司
类型:发明
国别省市:

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

1