一种缓存数据的刷新方法和装置制造方法及图纸

技术编号:14859968 阅读:39 留言:0更新日期:2017-03-19 12:19
本申请实施例提供了一种缓存数据的刷新方法和装置,所述的方法包括:接收针对缓存数据库中缓存数据的查询请求;所述缓存数据具有硬失效时间;判断所述缓存数据是否符合预设的旧数据条件;当符合旧数据条件时,根据所述硬失效时间和当前时间随机刷新所述缓存数据。本申请实施例从众多缓存数据的查询请求中随机筛选出一个或少数几个请求执行刷新操作,在实现缓存数据刷的同时避免对后端系统造成过大的冲击。

【技术实现步骤摘要】

本申请涉及缓存
,特别是涉及一种缓存数据的刷新方法和一种缓存数据的刷新装置。
技术介绍
随着信息技术和网络技术的发展,大多数应用出于性能考虑都会采用缓存技术,一般是在系统启动时将一些常用的原数据从配置文件等数据源中读取并缓存,以提升针对读多写少的数据的访问性能。如果原数据有修改或过期则需要对缓存的数据进行刷新。在针对访问热点的缓存数据的情况中,海量的前端请求同时发现某缓存的数据需要被刷新,则同时冲到后端系统(如数据库)获取最新的数据,对后端系统造成瞬时的极大冲击,对整个系统的性能和稳定性造成很大影响。因此,通常需要在刷新缓存数据时,引入某种控制措施,不让所有的请求都冲到后端系统去做最新的数据的读操作,以及缓存数据的写操作。一种方式是基于程序内同步锁(分布式环境中使用分布式锁)或其他类似的外部排他机制如数据库行级锁(如SELECTGET_LOCK()...RELEASE_LOCK(),SELECT…FORUPDATE等)的方法进行刷新。另一种方式是基于异步任务的方法刷新。但是,基于锁的方式中,锁都有一定的系统开销,会增加系统的复杂度;基于异步任务的方式,都依赖额外的软件组件或服务,增加了额外的依赖,降低了整体系统的维护性和稳定性,存在额外的系统开销,同时也会增加系统的复杂度。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提出一种缓存的刷新机制,保证系统的维护性和稳定性,降低系统开销,降低系统的复杂度。
技术实现思路
本申请实施例所要解决的技术问题是提供一种缓存数据的刷新方法,保证系统的维护性和稳定性,降低系统开销,降低系统的复杂度。相应的,本申请实施例还提供了一种缓存数据的刷新装置,保证系统的维护性和稳定性,降低系统开销,降低系统的复杂度。为了解决上述问题,本申请实施例公开了一种缓存数据的刷新方法,包括:接收针对缓存数据库中缓存数据的查询请求;所述缓存数据具有硬失效时间;判断所述缓存数据是否符合预设的旧数据条件;当符合旧数据条件时,根据所述硬失效时间和当前时间随机刷新所述缓存数据。优选地,所述缓存数据库包括Key-Value数据库。优选地,所述缓存数据还具有软失效时间和/或刷新标识;所述刷新标识具有刷新时间戳;所述根据所述查询请求判断所述缓存数据是否符合预设的旧数据条件的步骤包括:判断当前时间是否大于缓存数据的软失效时间或刷新标识的刷新时间戳;若是,则判断符合旧数据条件;或者,当检测到刷新标识时,判断符合旧数据条件。优选地,所述根据所述硬失效时间和当前时间随机刷新所述缓存数据的步骤包括:采用所述硬失效时间和当前时间计算特征数值;调用随机函数,获得随机数值;当所述特征数值大于所述随机数值时,刷新所述缓存数据。优选地,所述刷新所述缓存数据的步骤包括:获取所述缓存数据对应的原数据;采用所述原数据刷新在缓存数据库中的所述缓存数据。优选地,所述采用所述硬失效时间和当前时间计算特征数值的步骤包括:计算当前时间与所述硬失效时间之间的间隔时间;采用所述间隔时间计算特征数值;其中,所述特征数值与所述间隔时间成反比。优选地,通过以下公式计算特征数值:(w-xw)8]]>其中,w为所述缓存数据的软失效时间或刷新标识的刷新时间戳、与硬失效时间之间的差值,x为间隔时间。优选地,还包括:对刷新后的所述缓存数据重置软失效时间;或者,对刷新后的所述缓存数据清除所述刷新标识。优选地,还包括:返回刷新后的缓存数据。优选地,还包括:当未符合旧数据条件时,返回所述缓存数据。优选地,还包括:当所述特征数值小于或等于所述随机数值时,返回所述缓存数据。本申请实施例还公开了一种缓存数据的刷新装置,包括:查询请求接收模块,用于接收针对缓存数据库中缓存数据的查询请求;所述缓存数据具有硬失效时间;旧数据条件判断模块,用于判断所述缓存数据是否符合预设的旧数据条件;缓存数据随机刷新模块,用于在符合旧数据条件时,根据所述硬失效时间和当前时间随机刷新所述缓存数据。优选地,所述缓存数据库包括Key-Value数据库。优选地,所述缓存数据还具有软失效时间和/或刷新标识;所述刷新标识具有刷新时间戳;所旧数据条件判断模块包括:时间判断子模块,用于判断当前时间是否大于缓存数据的软失效时间或刷新标识的刷新时间戳;若是,则调用第一符合判断子模块;第一符合判断子模块,用于判断符合旧数据条件;或者,第二符合判断子模块,用于在检测到刷新标识时,判断符合旧数据条件。优选地,所述缓存数据随机刷新模块包括:特征数值计算子模块,用于采用所述硬失效时间和当前时间计算特征数值;随机数值获得模块,用于调用随机函数,获得随机数值;缓存数据刷新子模块,用于在所述特征数值大于所述随机数值时,刷新所述缓存数据。优选地,所述缓存数据刷新子模块包括:原数据获取子模块,用于获取所述缓存数据对应的原数据;原数据刷新子模块,用于采用所述原数据刷新在缓存数据库中的所述缓存数据。优选地,所述特征数值计算子模块包括:间隔时间计算子模块,用于计算当前时间与所述硬失效时间之间的间隔时间;反比计算子模块,用于采用所述间隔时间按照计算特征数值;其中,所述特征数值与所述间隔时间成反比。优选地,通过以下公式计算特征数值:(w-xw)8]]>其中,w为所述缓存数据的软失效时间或刷新标识的刷新时间戳、与硬失效时间之间的差值,x为间隔时间。优选地,还包括:重置模块,用于对刷新后的所述缓存数据重置软失效时间;和/或,清除模块,用于对刷新后的所述缓存数据清除所述刷新标识。优选地,还包括:第一返回模块,用于返回刷新后的缓存数据。优选地,还包括:第二返回模块,用于在未符合旧数据条件时,返回所述缓存数据。优选地,所述缓存数据随机刷新模块还包括:第三返回子模块,用于在所述特征数值小于或等于所述随机数值时,返回所述缓存数据。本申请实施例针对缓存数据库中缓存数据的查询请求,在判断缓存数据符合预设的旧数据条件时,根据硬失效时间和当前时间随机刷新缓存数据,从众多缓存数据的查询请求中随机筛选出一个或少数几个请求执行刷新操作,在实现缓存数据刷的同时避免对后端系统造成过大的冲击。相对于本文档来自技高网
...

【技术保护点】
一种缓存数据的刷新方法,其特征在于,包括:接收针对缓存数据库中缓存数据的查询请求;所述缓存数据具有硬失效时间;判断所述缓存数据是否符合预设的旧数据条件;当符合旧数据条件时,根据所述硬失效时间和当前时间随机刷新所述缓存数据。

【技术特征摘要】
1.一种缓存数据的刷新方法,其特征在于,包括:
接收针对缓存数据库中缓存数据的查询请求;所述缓存数据具有硬失效
时间;
判断所述缓存数据是否符合预设的旧数据条件;
当符合旧数据条件时,根据所述硬失效时间和当前时间随机刷新所述缓
存数据。
2.根据权利要求1所述的方法,其特征在于,所述缓存数据库包括
Key-Value数据库。
3.根据权利要求1所述的方法,其特征在于,所述缓存数据还具有软
失效时间和/或刷新标识;所述刷新标识具有刷新时间戳;
所述根据所述查询请求判断所述缓存数据是否符合预设的旧数据条件
的步骤包括:
判断当前时间是否大于缓存数据的软失效时间或刷新标识的刷新时间
戳;若是,则判断符合旧数据条件;
或者,
当检测到刷新标识时,判断符合旧数据条件。
4.根据权利要求1或2或3所述的方法,其特征在于,所述根据所述
硬失效时间和当前时间随机刷新所述缓存数据的步骤包括:
采用所述硬失效时间和当前时间计算特征数值;
调用随机函数,获得随机数值;
当所述特征数值大于所述随机数值时,刷新所述缓存数据。
5.根据权利要求4所述的方法,其特征在于,所述刷新所述缓存数据
的步骤包括:
获取所述缓存数据对应的原数据;
采用所述原数据刷新在缓存数据库中的所述缓存数据。
6.根据权利要求4所述的方法,其特征在于,所述采用所述硬失效时
间和当前时间计算特征数值的步骤包括:
计算当前时间与所述硬失效时间之间的间隔时间;
采用所述间隔时间计算特征数值;其中,所述特征数值与所述间隔时间
成反比。
7.根据权利要求6所述的方法,其特征在于,通过以下公式计算特征
数值:
(w-xw)8]]>其中,w为所述缓存数据的软失效时间或刷新标识的刷新时间戳、与硬
失效时间之间的差值,x为间隔时间。
8.根据权利要求1或2或3或5或6或7所述的方法,其特征在于,
还包括:
对刷新后的所述缓存数据重置软失效时间;
或者,
对刷新后的所述缓存数据清除所述刷新标识。
9.根据权利要求1或2或3或5或6或7所述的方法,其特征在于,
还包括:
返回刷新后的缓存数据。
10.根据权利要求1或2或3或5或6或7所述的方法,其特征在于,
还包括:
当未符合旧数据条件时,返回所述缓存数据。
11.根据权利要求4所述的方法,其特征在于,还包括:
当所述特征数值小于或等于所述随机数值时,返回所述缓存数据。
12.一种缓存数据的刷新装置,其特征在于,...

【专利技术属性】
技术研发人员:张广铃
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1