数据缓存方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:21627510 阅读:37 留言:0更新日期:2019-07-17 10:39
本发明专利技术提出的数据缓存方法、装置、计算机设备和存储介质,用于缓存请求频率固定的数据,其中方法包括:接收设备发来的当前请求;判断所述当前请求的请求对象是否为缓存中的对象;若所述请求对象为缓存中的对象,则从所述缓存中调用所述请求对象;否则从预设数据库中获取所述请求对象,并判断是否需要将所述请求对象存入所述缓存;若判定需要将所述请求对象存入所述缓存中,则删除所述缓存中的目标对象,并将所述请求对象存入所述缓存中,所述目标对象为在第一预设时间内各对象被调用的时刻当中最晚的对象,该方法能够提高调用缓存频率基本固定场景的缓存命中率,充分利用缓存资源,与现有LRU、LFU以及FIFO等缓存算法相比,耗费的时间代价更少。

Data caching methods, devices, computer equipment and storage media

【技术实现步骤摘要】
数据缓存方法、装置、计算机设备和存储介质
本专利技术涉及到数据处理的
,特别是涉及到一种数据缓存方法、装置、计算机设备和存储介质。
技术介绍
缓存通常为各设备系统的备份内存,由于内存资源有限,通常会设定一个固定内存值,当缓存大小超过固定值后,再按照LRU(LeastRencentlyUsed)、LFU(LeastFrequentlyUsed)或者FIFO(FirstInFirstOut)等算法对缓存进行清理。如规则引擎中,会缓存规则引擎实例,用于对设备请求的数据进行处理,而不需要每次请求都重新创建对象,当缓存达到设定的固定值时,会根据缓存算法进行清理。但是,在物联网场景中,设备上报数据或请求数据的频率往往是固定的,而这种场景中若依据上述LRU、LFU或者FIFO等算法进行清理缓存并不适合,缓存命中率并不高,且缓存资源利用也不够充分,鉴于上述各种缓存算法在物联网场景中的不足之处,亟需一种针对调用缓存频率基本固定的场景的缓存方法。
技术实现思路
本专利技术的主要目的为提供一种数据缓存方法、装置、计算机设备和存储介质,旨在解决在请求频率基本固定的场景中,缓存资源利用不充分的技术问题。基于上述专利技术目的,本专利技术提出一种数据缓存方法,用于缓存请求频率固定的数据,包括:接收设备发来的当前请求;判断所述当前请求的请求对象是否为缓存中的对象;若所述请求对象为缓存中的对象,则从所述缓存中调用所述请求对象;否则从预设数据库中获取所述请求对象,并判断是否需要将所述请求对象存入所述缓存;若判定需要将所述请求对象存入所述缓存中,则获取所述缓存中各对象的调用频率以及调用时刻,所述调用时刻为基于当前时刻所述对象前一次被调用的时刻;依据所述调用频率以及所述调用时刻计算出各所述对象在第一预设时间内每次被调用的时刻,所述第一预设时间为从当前时刻起指定时间内的时间段;将各所述对象对应的被调用的时刻进行对比得到时刻最晚的目标时刻,将对应所述目标时刻的对象记为所述目标对象;删除所述目标对象,并将所述请求对象存入所述缓存中。进一步地,所述依据所述调用频率以及所述调用时刻计算出各所述对象在所述第一预设时间内每次被调用的时刻的步骤,包括:利用以下公式计算各所述对象在所述第一预设时间内每次被调用的时刻:其中,i为所述缓存中的任一个对象,Ti为对象i的调用时刻,fi为对象i的调用频率,ti为前一次调用对象i的时刻。进一步地,所述判断是否需要将所述请求对象存入所述缓存的步骤,包括:依据预设的所有请求的请求频率计算得到在第二预设时间内各请求按请求时间排序的排列顺序;计算在所述请求对象没有存入所述缓存的情况下按所述排列顺序遍历各请求所需的时间,并记为第一耗时;计算在所述请求对象存入所述缓存的情况下按所述排序顺序遍历各请求所需的时间,并记为第二耗时;将所述第一耗时与所述第二耗时进行对比;若所述第一耗时比所述第二耗时长,则判定需要将所述请求对象存入所述缓存;若所述第一耗时比所述第二耗时短,则判定不需要将所述请求对象存入所述缓存。进一步地,所述依据预设的所有请求的请求频率计算得到在第二预设时间内各请求按时间顺序排序的排列顺序的步骤,包括:依据预设的所有请求的请求频率计算得到在所述第二预设时间内各所述请求的所有请求时刻;将对应每个所述请求时刻的请求按时间顺序进行排序得到所述排列顺序;其中,通过以下公式计算得到请求j的所有请求时刻:其中,j为所述预设的所有请求中的任一个请求,Hj(n)为请求j的第n次请求的请求时刻,fj为请求j的请求频率,t0为所述第二预设时间内的初始时刻。进一步地,所述判断是否需要将所述请求对象存入所述缓存的步骤,包括:获取所述缓存中各对象的调用频率;依据所述调用频率计算出下一个请求的对象,并记为下次对象;判断所述下次对象是否为所述当前请求的请求对象;若是,则判定需要将所述请求对象存入所述缓存中,否则判定不需要将所述请求对象存入所述缓存中。进一步地,所述判断所述当前请求的请求对象是否为缓存中的对象的步骤,包括:依据所述当前请求识别出所述请求对象;将所述请求对象与缓存列表中各对象进行对比,所述缓存列表为存储在所述缓存中所有对象的列表;若所述请求对象与所述缓存列表中的对象一致,则判定所述请求对象为所述缓存中的对象;否则判定所述请求对象不为所述缓存中的对象。本专利技术还提供一种数据缓存装置,用于缓存请求频率固定的数据,包括:接收请求单元,用于接收设备发来的当前请求;判断对象单元,用于判断所述当前请求的请求对象是否为缓存中的对象;调用对象单元,用于若所述请求对象为缓存中的对象,则从所述缓存中调用所述请求对象;否则从预设数据库中获取所述请求对象,并判断是否需要将所述请求对象存入所述缓存;获取时刻单元,用于若判定需要将所述请求对象存入所述缓存中,则获取所述缓存中各对象的调用频率以及调用时刻,所述调用时刻为基于当前时刻所述对象前一次被调用的时刻;计算时刻单元,用于依据所述调用频率以及所述调用时刻计算出各所述对象在第一预设时间内每次被调用的时刻,所述第一预设时间为从当前时刻起指定时间内的时间段;对比时刻单元,用于将各所述对象对应的被调用的时刻进行对比得到时刻最晚的目标时刻,将对应所述目标时刻的对象记为所述目标对象;删除对象单元,用于删除所述目标对象,并将所述请求对象存入所述缓存中。进一步地,所述调用对象单元包括:计算顺序子单元,用于依据预设的所有请求的请求频率计算得到在第二预设时间内各请求按时间顺序排序的排列顺序;第一耗时子单元,用于计算在所述请求对象没有存入所述缓存的情况下按所述排列顺序遍历各请求所需的时间,并记为第一耗时;第二耗时子单元,用于计算在所述请求对象存入所述缓存的情况下按所述排序顺序遍历各请求所需的时间,并记为第二耗时;对比耗时子单元,用于将所述第一耗时与所述第二耗时进行对比;第一判定子单元,用于所述第一耗时比所述第二耗时长时,则判定需要将所述请求对象存入所述缓存;第二判定子单元,用于所述第一耗时比所述第二耗时短时,则判定不需要将所述请求对象存入所述缓存。本专利技术还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。本专利技术的有益效果为:先判断请求的请求对象是否为缓存中的对象,若不是,则进一步判断需不需要将请求对象存入缓存中,若需要,则通过预设规则得到在第一预设时间内各对象被调用的时刻当中最晚的对象,然后删除该对象并将请求对象存入缓存中,该方法能够提高请求频率基本固定场景的缓存命中率,充分利用缓存资源,与现有LRU、LFU以及FIFO等缓存算法相比,耗费的时间代价更少。附图说明图1为本专利技术一实施例中数据缓存方法的步骤示意图;图2为本专利技术一实施例中数据缓存装置的结构示意框图;图3为本专利技术一实施例的计算机设备的结构示意框图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,本实施例中的数据缓存方法,包括:步骤S1:接收设备发来的当前请求;步骤S2:判断所述当前请求的请求对象是本文档来自技高网...

【技术保护点】
1.一种数据缓存方法,用于缓存请求频率固定的数据,其特征在于,包括:接收设备发来的当前请求;判断所述当前请求的请求对象是否为缓存中的对象;若所述请求对象为缓存中的对象,则从所述缓存中调用所述请求对象,否则从预设数据库中获取所述请求对象,并判断是否需要将所述请求对象存入所述缓存;若判定需要将所述请求对象存入所述缓存中,则获取所述缓存中各对象的调用频率以及调用时刻,所述调用时刻为基于当前时刻所述对象前一次被调用的时刻;依据所述调用频率以及所述调用时刻计算出各所述对象在第一预设时间内每次被调用的时刻,所述第一预设时间为从当前时刻起指定时间内的时间段;将各所述对象对应的被调用的时刻进行对比得到时刻最晚的目标时刻,将对应所述目标时刻的对象记为所述目标对象;删除所述目标对象,并将所述请求对象存入所述缓存中。

【技术特征摘要】
1.一种数据缓存方法,用于缓存请求频率固定的数据,其特征在于,包括:接收设备发来的当前请求;判断所述当前请求的请求对象是否为缓存中的对象;若所述请求对象为缓存中的对象,则从所述缓存中调用所述请求对象,否则从预设数据库中获取所述请求对象,并判断是否需要将所述请求对象存入所述缓存;若判定需要将所述请求对象存入所述缓存中,则获取所述缓存中各对象的调用频率以及调用时刻,所述调用时刻为基于当前时刻所述对象前一次被调用的时刻;依据所述调用频率以及所述调用时刻计算出各所述对象在第一预设时间内每次被调用的时刻,所述第一预设时间为从当前时刻起指定时间内的时间段;将各所述对象对应的被调用的时刻进行对比得到时刻最晚的目标时刻,将对应所述目标时刻的对象记为所述目标对象;删除所述目标对象,并将所述请求对象存入所述缓存中。2.根据权利要求1所述的数据缓存方法,其特征在于,所述依据所述调用频率以及所述调用时刻计算出各所述对象在所述第一预设时间内每次被调用的时刻的步骤,包括:利用以下公式计算各所述对象在所述第一预设时间内每次被调用的时刻:其中,i为所述缓存中的任一个对象,Ti为对象i的调用时刻,fi为对象i的调用频率,ti为前一次调用对象i的时刻。3.根据权利要求1所述的数据缓存方法,其特征在于,所述判断是否需要将所述请求对象存入所述缓存的步骤,包括:依据预设的所有请求的请求频率计算得到在第二预设时间内各请求按请求时间排序的排列顺序;计算在所述请求对象没有存入所述缓存的情况下按所述排列顺序遍历各请求所需的时间,并记为第一耗时;计算在所述请求对象存入所述缓存的情况下按所述排序顺序遍历各请求所需的时间,并记为第二耗时;将所述第一耗时与所述第二耗时进行对比;若所述第一耗时比所述第二耗时长,则判定需要将所述请求对象存入所述缓存;若所述第一耗时比所述第二耗时短,则判定不需要将所述请求对象存入所述缓存。4.根据权利要求3所述的数据缓存方法,其特征在于,所述依据预设的所有请求的请求频率计算得到在第二预设时间内各请求按请求时间排序的排列顺序的步骤,包括:依据预设的所有请求的请求频率计算得到在所述第二预设时间内各所述请求的所有请求时刻;将对应每个所述请求时刻的请求按时间顺序进行排序得到所述排列顺序;其中,通过以下公式计算得到请求j的所有请求时刻:其中,j为所述预设的所有请求中的任一个请求,Hj(n)为请求j的第n次请求的请求时刻,fj为请求j的请求频率,t0为所述第二预设时间内的初始时刻。5.根据权利要求1所述的数据缓存方法,其特征在于,所述判断是否需要将所述请求对象存入所述缓存的步骤,包括:获取所述缓存中各对象的调用频率;依据所述调用频率计算出下一个请求的对象,并记为...

【专利技术属性】
技术研发人员:李桃
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1