基于缓存价值的图片缓存方法、设备、存储介质及装置与流程

文档序号:19065000发布日期:2019-11-06 02:14阅读:177来源:国知局
基于缓存价值的图片缓存方法、设备、存储介质及装置与流程
本发明涉及数据缓存
技术领域
,尤其涉及一种基于缓存价值的图片缓存方法、设备、存储介质及装置。
背景技术
:对数据进行缓存替换需要计算数据缓存价值,并替换价值最低的数据,数据缓存价值由两个部分组成,分别是数据流行度和数据缓存代价,数据流行度与实时访问相关,由访问频率计算而得,但访问频率的计算只考虑到数据被访问情况,当数据未被访问时,按照目前的计算方法访问频率为0,相应计算获得的数据流行度为0,但是数据实际流行度不一定为0,数据与数据之间是相关联的,从而导致现有技术中采用的计算方式获得的数据缓存价值不准确,无法体现数据实际流行度,导致进行缓存替换时出现偏差,缓存的数据价值可能与实际情况不符,无法满足实际应用场景。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于提供一种基于缓存价值的图片缓存方法、设备、存储介质及装置,旨在解决现有技术中数据缓存价值计算不准确导致数据缓存替换出现偏差,无法满足实际应用场景的技术问题。为实现上述目的,本发明提供一种基于缓存价值的图片缓存方法,所述基于缓存价值的图片缓存方法包括以下步骤:获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量;根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。优选地,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间;所述获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,具体包括:获取待处理图片;将所述待处理图片进行序列化处理,获得序列化数据;计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小;将所述序列化数据在预设缓存数据库redis的预存储区域进行预缓存;计算从所述预设缓存数据库redis中读取所述待处理图片的耗时,获得所述待处理图片对应的传输时间。优选地,所述根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值,具体包括:根据预设特征向量相似度公式,计算所述第一特征向量与各第二特征向量之间的特征向量相似度;根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度;根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价;根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。优选地,所述根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度,具体包括:获取所述预设缓存数据库redis中的各存储图片在上一周期内的流行度;根据各存储图片在上一周期内的流行度及所述特征向量相似度,通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。优选地,所述根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价,具体包括:获取服务器带宽;根据所述服务器带宽、所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。优选地,所述将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis,具体包括:从各图片缓存价值中选取最小值作为最小缓存价值;将所述目标缓存价值与所述最小缓存价值进行比较;若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除;判断所述预设缓存数据库redis是否有充足的缓存空间;若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。优选地,所述判断所述预设缓存数据库redis是否有充足的缓存空间之后,所述基于缓存价值的图片缓存方法还包括:若所述预设缓存数据库redis没有充足的缓存空间,则返回从各图片缓存价值中选取最小缓存价值的步骤,直至所述预设缓存数据库redis有充足的缓存空间或所述目标缓存价值小于各图片缓存价值中的最小值。此外,为实现上述目的,本发明还提出一种基于缓存价值的图片缓存设备,所述基于缓存价值的图片缓存设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于缓存价值的图片缓存程序,所述基于缓存价值的图片缓存程序配置为实现如上文所述的基于缓存价值的图片缓存方法的步骤。此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于缓存价值的图片缓存程序,所述基于缓存价值的图片缓存程序被处理器执行时实现如上文所述的基于缓存价值的图片缓存方法的步骤。此外,为实现上述目的,本发明还提出一种基于缓存价值的图片缓存装置,所述基于缓存价值的图片缓存装置包括:预缓存模块,用于获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数;获取模块,用于获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量;计算模块,用于根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值;所述获取模块,还用于获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;存储模块,用于将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。本发明中,通过获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,未访问的数据可通过预缓存获得缓存参数,从而更加准确的计算缓存价值;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量,根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值,通过对缓存中已有数据的特征学习,从而提高计算缓存价值的准确性;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值,将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis,根据更准确的缓存价值判断待处理数据是否需要进行缓存,使得缓存数据更贴近实际应用场景,更有价值。附图说明图1是本发明实施例方案涉及的硬件运行环境的基于缓存价值的图片缓存设备的结构示意图;图2为本发明基于缓存价值的图片缓存方法第一实施例的流程示意图;图3为本发明基于缓存价值的图片缓存方法第一实施例中特征向量存储结构示例图;图4为本发明基于缓存价值的图片缓存方法第二实施例的流程示意图;图5为本发明基于缓存价值的图片缓存方法第三实施例的流程示意图;图6为本发明基于缓存价值的图片缓存装置第一实施例的结构框图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于缓存价值的图片缓存设备结构示意图。如图1所示,该基于缓存价值的图片缓存设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为usb接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的结构并不构成对基于缓存价值的图片缓存设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于缓存价值的图片缓存程序。在图1所示的基于缓存价值的图片缓存设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,并执行本发明实施例提供的基于缓存价值的图片缓存方法。所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,并执行以下操作:获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量;根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。进一步地,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间;所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:获取待处理图片;将所述待处理图片进行序列化处理,获得序列化数据;计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小;将所述序列化数据在预设缓存数据库redis的预存储区域进行预缓存;计算从所述预设缓存数据库redis中读取所述待处理图片的耗时,获得所述待处理图片对应的传输时间。进一步地,所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:根据预设特征向量相似度公式,计算所述第一特征向量与各第二特征向量之间的特征向量相似度;根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度;根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价;根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。进一步地,所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:获取所述预设缓存数据库redis中的各存储图片在上一周期内的流行度;根据各存储图片在上一周期内的流行度及所述特征向量相似度,通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。进一步地,所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:获取服务器带宽;根据所述服务器带宽、所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。进一步地,所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:从各图片缓存价值中选取最小值作为最小缓存价值;将所述目标缓存价值与所述最小缓存价值进行比较;若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除;判断所述预设缓存数据库redis是否有充足的缓存空间;若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。进一步地,所述基于缓存价值的图片缓存设备通过处理器1001调用存储器1005中存储的基于缓存价值的图片缓存程序,还执行以下操作:若所述预设缓存数据库redis没有充足的缓存空间,则返回从各图片缓存价值中选取最小缓存价值的步骤,直至所述预设缓存数据库redis有充足的缓存空间或所述目标缓存价值小于各图片缓存价值中的最小值。基于上述硬件结构,提出本发明基于缓存价值的图片缓存方法的实施例。参照图2,图2为本发明基于缓存价值的图片缓存方法第一实施例的流程示意图,提出本发明基于缓存价值的图片缓存方法第一实施例。在第一实施例中,所述基于缓存价值的图片缓存方法包括以下步骤:步骤s10:获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数。应理解的是,本实施例的执行主体是所述基于缓存价值的图片缓存设备,所述基于缓存价值的图片缓存设备可以是个人电脑或者服务器等电子设备,本实施例对此不加以限制。当所述预设缓存数据库redis的缓存空间不足时,会将缓存价值最低的数据替换出去,从而将内存空间空出来以满足新数据的缓存要求。但由于在进行待处理图片缓存价值计算时,有些值必须存储后才能获取,故将redis的缓存空间进行切割,一部分进行数据缓存并根据缓存价值进行替换,一部分进行数据预存储并直接删除。需要说明的是,在访问所述待处理图片时,若所述待处理图片没有访问日志,则可为所述待处理图片创建访问日志,所述访问日志的信息如下表1所示:名称含义是否实时更新i特征向量否tlast最近一次访问时间是n当前周期内访问次数是p当前周期预测流行度是s数据大小否t传输时间否t当前周期时间是v缓存价值是表1:访问日志并将i、tlast、n、p和t值存入日志中,其中n=1,v值为空。若所述预设缓存数据库redis中有充足缓存空间时,可直接将所述待处理图片进行序列化处理,并将序列化处理获得的序列化数据缓存至所述预设缓存数据库redis中,计算序列化后获得的序列化数据的数据大小s值和传输时间t值,并计算缓存价值v值存入所述访问日志中。在具体实现中,若所述预设缓存数据库redis中没有充足缓存空间时,将所述待处理图片进行序列化处理,并将序列化处理获得的序列化数据在预设缓存数据库redis中进行预缓存,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间,计算序列化后获得的序列化数据的数据大小s值和传输时间t值,并计算缓存价值v值存入所述访问日志中。步骤s20:获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量。可理解的是,计算图片的数据流行度,需要对各图片进行特征向量提取,即抽取能代表图片数据的属性值。本实施例方案可应用于特色农产品服务平台中,所述特色农产品服务平台中所有农产品的图片数据都已经被进行了三级分类,每一级分类都是上一级分类的细化分支,可以将农产品的图片进行简单的属性抽取。例如:金川雪梨——{“水果”,“仁果类”,“苹果梨”},其中,金川雪梨属于苹果梨类,苹果梨属于仁果类,而仁果类又是水果的分类。对所有的农产品图片进行这类特征向量提取,但由于这类特征向量的属性值之间存在依赖,无法直接使用余弦相似度进行计算数据间的相似度。基于特色农产品服务平台中农产品分类特征,本实施例设计了一种特征向量存储结构,来帮助存储计算内存中农产品图片间的特征向量相似度,特征向量存储结构如图3所示,图3为特征向量存储结构示例图。应理解的是,在所述特征向量存储结构中,每层子树的权重不同,以此区分特征向量中属性的评分占比,即农产品分类时分类级别的重要性。通过树形存储结构,可以表现出特征向量属性间的依赖性。根据所述特征向量存储结构,对图片间特征向量相似度计算进行改进。例如,待处理图片x的第一特征向量为{x1,x2,x3},所述预设缓存数据库redis中的任一存储图片y的第二特征向量为{y1,y2,y3}。待处理图片x与存储图片y的特征向量相似度计算公式为:需要说明的是,计算图片与图片间的特征向量相似度,即获取图片数据间访问的相似度,当待处理图片x与存储图片y的特征向量相似度较高时,访问待处理图片x的同时也会影响存储图片y的潜在流行度。因此通过计算图片间的特征向量相似度,可以对暂时未被访问的图片进行潜在流行度计算。步骤s30:根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值。在具体实现中,计算所述待处理图片流行度,为了提高流行度的计算准确度,需要考虑所述待处理图片没被访问时,所述待处理图片潜在流行度,考虑所述待处理图片的潜在隐藏价值。通过所述第一特征向量和所述第二特征向量计算所述待处理图片与所述存储图片的特征向量相似度,获得所述待处理图片依赖于所述存储图片的目标潜在流行度。应理解的是,由于图片数据集较大,缓存所消耗资源较多,因此在进行数据缓存价值计算时,需要考虑使用redis缓存时的缓存代价,缓存代价主要分为传输代价、缓存成本。传输代价主要考虑数据传输读取耗时、服务器带宽等,传输读取耗时包括数据序列化以及反序列化过程。传输代价越高,其缓存代价越高;缓存成本与数据的大小相关,数据越大占用内存资源越多,其缓存代价越高。根据所述缓存参数和所述目标潜在流行度,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间,根据所述待处理图片对应的数据大小和传输时间可计算所述待处理图片的预测流行度,所述预设缓存价值函数为:其中,vx(t)为待处理图片x在当前周期t内的缓存价值,px(t)为待处理图片x在当前周期t内的预测流行度,cx为待处理图片x的缓存代价。步骤s40:获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;可理解的是,可通过获取所述预设缓存数据库redis中的各存储图片的数据大小及传输时间,并获取服务器带宽,根据所述服务器带宽、各存储图片的数据大小及传输时间,通过所述预设缓存价值函数计算所述预设缓存数据库redis中的各存储图片的图片缓存价值。步骤s50:将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。需要说明的是,获取所述预设缓存数据库redis中各图片缓存价值中的最小值,将所述目标缓存价值与所述最小值进行比较,若所述目标缓存价值大于所述最小值,则将所述最小值对应的存储图片从所述预设缓存数据库redis中删除,此时,可判断所述预设缓存数据库redis中是否有足够的空间存储所述待处理图片,若有足够空间,则将所述待处理图片存储至所述预设缓存数据库redis,若没有足够空间,则返回获取所述预设缓存数据库redis中各图片缓存价值中的最小值的步骤,继续比较所述目标缓存价值与新的最小值,直至所述预设缓存数据库redis有足够的空间存储所述待处理图片或者所述待处理图片的所述目标缓存价值小于新的最小值。本实施例中,通过获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,未访问的数据可通过预缓存获得缓存参数,从而更加准确的计算缓存价值;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量,根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值,通过对缓存中已有数据的特征学习,从而提高计算缓存价值的准确性;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值,将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis,根据更准确的缓存价值判断待处理数据是否需要进行缓存,使得缓存数据更贴近实际应用场景,更有价值。参照图4,图4为本发明基于缓存价值的图片缓存方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于缓存价值的图片缓存方法的第二实施例。在第二实施例中,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间;所述步骤s10,具体包括:步骤s101:获取待处理图片。应理解的是,在访问所述待处理图片时,可对所述待处理图片进行获取。步骤s102:将所述待处理图片进行序列化处理,获得序列化数据。可理解的是,在进行redis缓存时,需要将所述待处理图片进行序列化处理,再将获得的所述序列化数据进行redis缓存。步骤s103:计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小。需要说明的是,缓存成本与数据的大小相关,数据越大占用内存资源越多,其缓存代价越高。所述预设缓存价值函数中的数据大小为所述待处理图片在所述预设缓存数据库redis中的数据大小,因此,计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小,从而计算获得更准确的目标缓存价值。步骤s104:将所述序列化数据在预设缓存数据库redis的预存储区域进行预缓存。步骤s105:计算从所述预设缓存数据库redis中读取所述待处理图片的耗时,获得所述待处理图片对应的传输时间。在具体实现中,所述待处理图片对应的数据大小,为所述待处理图片进行序列化后二进制数据集大小。由于数据在redis中的存储读取有序列化和反序列两个步骤,当所述待处理图片被存储在redis中时,会进行序列化存储,此时耗时为ts。当所述待处理图片再次被访问时,会从redis缓存中读取数据并进行反序列化,此时耗时为te。读取所述待处理图片时,第一次从磁盘中读取所述待处理图片后会直接返给用户,同时对所述待处理图片进行缓存处理,此时的缓存处理时间为序列化耗时,缓存后再次读取图片需要进行反序列化,考虑到第一次传输时间属于磁盘读取,而缓存后的传输时间也就是反序列化耗时,故所述待处理图片对应的传输时间t=te,为方便计算图片响应时间,可将所述待处理图片缓存后读取时间定为图片响应时间。在第二实施例中,所述步骤s30,包括:步骤s301:根据预设特征向量相似度公式,计算所述第一特征向量与各第二特征向量之间的特征向量相似度。应理解的是,所述预设特征向量相似度公式为:其中,0<sim(x,y)<1;n(x1,y1)是比较x1和y1的结果,当x1=y1时,其值为1,当x1≠y1时,其值为0。步骤s302:根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。可理解的是,为了提高计算所述待处理图片x流行度的准确度,计算的流行度不仅需要考虑所述待处理图片x在周期内被访问时的流行度,还需要考虑所述待处理图片x没被访问时,所述待处理图片x潜在流行度,考虑所述待处理图片x的潜在隐藏价值。因此对待处理图片x潜在流行度的计算公式进行优化,通过计算待处理图片x与存储图片y的特征向量相似度,可以获取待处理图片x依赖于存储图片y的潜在流行度,其公式为:px(t)=αpy(t)×sim(x,y);其中,py(t)为数据y当前周期内的流行度,sim(x,y)为待处理图片x与存储图片y的特征向量相似度。通过计算已知缓存数据所述存储图片与待处理图片x之间特征向量相似度,计算出待处理图片x的潜在流行度,原始潜在流行度公式如下:其中,u为已知流行度的数据集合,py(t-1)为已知数据y在上一周期的流行度,sim(x,y)为数据x与数据y的特征向量相似度。在本实施例中,所述步骤s302,包括:获取所述预设缓存数据库redis中的各存储图片在上一周期内的流行度;根据各存储图片在上一周期内的流行度及所述特征向量相似度,通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。应理解的是,对所述原始潜在流行度公式进行改进优化,获得所述预设改进依赖数据潜在流行度,所述预设改进依赖数据潜在流行度公式为:px(t)=αpx(t-1)+(1-α)nx(t)+qx;需要说明的是,如果对所有已知数据都进行相应的相似度计算和流行度统计,并以此来更新或计算一个数据的流行度,计算代价过大。可以发现,当进行数据特征向量比较时,特征向量中第一位向量不同时,图片数据间的特征向量相似度为0,以此计算出的潜在流行度也为0,没有计算价值。因此需要对计算数据集进行筛选,对图片数据进行特征向量提取时,图片数据的特征向量为三位,后一位向量是前一位向量的分支。为减少计算代价,可选用前两维向量相同的数据进行特征向量相似度计算,即y∈u,其中n(x1,y1)和n(x2,y2)的值都为1。在具体实现中,当图片数据被访问时,不需要每次访问都对其进行流行度的预测计算。图片数据流行度计算是具有周期性的,每个周期内流行度是相同的,以此可以减少计算代价和时间对流行度的影响。步骤s303:根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。应理解的是,所述预设改进缓存代价为:其中,sx为待处理图片x的数据大小,sx越大,缓存代价越大,其缓存价值越大。sx为待处理图片x的传输时间,传输时间越大,其缓存代价越大,缓存价值也就越大,b为服务器带宽,服务器带宽越大,查询速度越快,其价值就越小。在本实施例中,所述步骤s303,包括:获取服务器带宽;根据所述服务器带宽、所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。步骤s304:根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。可理解的是,图片数据缓存价值分为数据流行度与缓存代价,由于流行度计算具有一定的时效性,需要对时间进行周期性控制,使得图片数据缓存价值也具有一定的周期性。但当用户十分频繁访问同一图片数据时,对于图片数据缓存代价的考虑会减少,反之对于缓存数据访问频率较低时,数据流行度的权重也会降低。可通过访问间隔时间来对数据流行度与缓存价值权重进行计算。访问间隔时间公式如下:tinter=tcur-tlast;其中,tinter为数据x的访问间隔时间,tcur为当前访问时间,tlast为数据x最近一次访问时间。tinter值越小,说明待处理图片x在当前时间段的访问频率越高,此时待处理图片x的缓存价值主要取决于待处理图片x的流行度;当时间间隔tinter值越大,说明待处理图片x在当前时间段的访问频率越低,此时待处理图片x的缓存价值主要取决于待处理图片x的缓存代价。基于上述分析,待处理图片x的缓存价值函数可以用如下公式进行表达,即所述预设缓存价值函数为:其中,vx(t)为待处理图片x在当前周期t内的缓存价值,px(t)为待处理图片x在当前周期t内的预测流行度,cx为待处理图片x的缓存代价。该函数将数据请求时间间隔作为权重因子,使数据的流行度和缓存代价在其缓存价值函数中所占的比重可以进行实时调整,使得数据缓存价值计算更为合理化。在本实施例中,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,从而提高所述待处理图片对应的缓存参数计算的准确度;通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价,根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值,考虑待处理图片未被访问时潜在流行度,并考虑存储图片与待处理图片之间的关联性,从而提高所述待处理图片的目标缓存价值计算的准确度,更贴近实际应用场景。参照图5,图5为本发明基于缓存价值的图片缓存方法第三实施例的流程示意图,基于上述第一实施例或第二实施例,提出本发明基于缓存价值的图片缓存方法的第三实施例;在本实例中,基于第二实施例进行说明。在本实施例中,所述步骤s50,包括:步骤s501:从各图片缓存价值中选取最小值作为最小缓存价值。应理解的是,所述预设缓存数据库redis中没有充足的缓存空间,则无法直接将所述待处理图片进行存储,可通过获取所述预设缓存数据库redis中各缓存图片的图片缓存价值,从各图片缓存价值中选取最小值作为最小缓存价值,通过比较所述待处理图片的所述目标缓存价值与所述最小缓存价值,判断是否将所述待处理图片进行存储。步骤s502:将所述目标缓存价值与所述最小缓存价值进行比较。可理解的是,将所述目标缓存价值与所述最小缓存价值进行比较;较大者的缓存价值高,更值得进行存储;较小者的缓存价值低,可以不进行存储,直接删除。步骤s503:若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除。需要说明的是,若所述目标缓存价值大于等于所述最小缓存价值,说明所述待存储图片相较于所述最小缓存价值对应的存储图片更具有存储价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除,若所述预设缓存数据库redis中有充足空间,则可将所述待处理图片进行存储。步骤s504:判断所述预设缓存数据库redis是否有充足的缓存空间。在具体实现中,所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除之后,获取所述预设缓存数据库redis中的剩余存储空间,将所述剩余存储空间与所述待存储图片的数据大小进行比较,若所述剩余存储空间大于或者等于所述待存储图片的数据大小,说明所述预设缓存数据库redis有充足的缓存空间,若所述剩余存储空间小于所述待存储图片的数据大小,说明所述预设缓存数据库redis没有充足的缓存空间。步骤s505:若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。应理解的是,若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。若所述预设缓存数据库redis没有充足的缓存空间,继续比较缓存空间新的最小缓存价值,直至空间足够所述待处理图片存入或所述待处理图片的目标缓存价值小于缓存空间数据最小最小缓存价值。本实施例中,所述步骤s504之后,还包括:若所述预设缓存数据库redis没有充足的缓存空间,则返回从各图片缓存价值中选取最小缓存价值的步骤,直至所述预设缓存数据库redis有充足的缓存空间或所述目标缓存价值小于各图片缓存价值中的最小值。本实施例中,从各图片缓存价值中选取最小值作为最小缓存价值,将所述目标缓存价值与所述最小缓存价值进行比较,若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除,判断所述预设缓存数据库redis是否有充足的缓存空间,若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis,从而将更有存储价值的数据进行存储,提高数据存储的有效性,更符合实际应用场景。此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于缓存价值的图片缓存程序,所述基于缓存价值的图片缓存程序被处理器执行时实现如下步骤:获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量;根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。进一步地,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间;所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:获取待处理图片;将所述待处理图片进行序列化处理,获得序列化数据;计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小;将所述序列化数据在预设缓存数据库redis的预存储区域进行预缓存;计算从所述预设缓存数据库redis中读取所述待处理图片的耗时,获得所述待处理图片对应的传输时间。进一步地,所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:根据预设特征向量相似度公式,计算所述第一特征向量与各第二特征向量之间的特征向量相似度;根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度;根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价;根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。进一步地,所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:获取所述预设缓存数据库redis中的各存储图片在上一周期内的流行度;根据各存储图片在上一周期内的流行度及所述特征向量相似度,通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。进一步地,所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:获取服务器带宽;根据所述服务器带宽、所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。进一步地,所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:从各图片缓存价值中选取最小值作为最小缓存价值;将所述目标缓存价值与所述最小缓存价值进行比较;若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除;判断所述预设缓存数据库redis是否有充足的缓存空间;若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。进一步地,所述基于缓存价值的图片缓存程序被处理器执行时还实现如下操作:若所述预设缓存数据库redis没有充足的缓存空间,则返回从各图片缓存价值中选取最小缓存价值的步骤,直至所述预设缓存数据库redis有充足的缓存空间或所述目标缓存价值小于各图片缓存价值中的最小值。本实施例中,通过获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,未访问的数据可通过预缓存获得缓存参数,从而更加准确的计算缓存价值;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量,根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值,通过对缓存中已有数据的特征学习,从而提高计算缓存价值的准确性;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值,将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis,根据更准确的缓存价值判断待处理数据是否需要进行缓存,使得缓存数据更贴近实际应用场景,更有价值。此外,参照图6,本发明实施例还提出一种基于缓存价值的图片缓存装置,所述基于缓存价值的图片缓存装置包括:预缓存模块10,用于获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数。应理解的是,当所述预设缓存数据库redis的缓存空间不足时,会将缓存价值最低的数据替换出去,从而将内存空间空出来以满足新数据的缓存要求。但由于在进行待处理图片缓存价值计算时,有些值必须存储后才能获取,故将redis的缓存空间进行切割,一部分进行数据缓存并根据缓存价值进行替换,一部分进行数据预存储并直接删除。需要说明的是,在访问所述待处理图片时,若所述待处理图片没有访问日志,则可为所述待处理图片创建访问日志,所述访问日志的信息如下表1所示:名称含义是否实时更新i特征向量否tlast最近一次访问时间是n当前周期内访问次数是p当前周期预测流行度是s数据大小否t传输时间否t当前周期时间是v缓存价值是表1:访问日志并将i、tlast、n、p和t值存入日志中,其中n=1,v值为空。若所述预设缓存数据库redis中有充足缓存空间时,可直接将所述待处理图片进行序列化处理,并将序列化处理获得的序列化数据缓存至所述预设缓存数据库redis中,计算序列化后获得的序列化数据的数据大小s值和传输时间t值,并计算缓存价值v值存入所述访问日志中。在具体实现中,若所述预设缓存数据库redis中没有充足缓存空间时,将所述待处理图片进行序列化处理,并将序列化处理获得的序列化数据在预设缓存数据库redis中进行预缓存,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间,计算序列化后获得的序列化数据的数据大小s值和传输时间t值,并计算缓存价值v值存入所述访问日志中。获取模块20,用于获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量。可理解的是,计算图片的数据流行度,需要对各图片进行特征向量提取,即抽取能代表图片数据的属性值。本实施例方案可应用于特色农产品服务平台中,所述特色农产品服务平台中所有农产品的图片数据都已经被进行了三级分类,每一级分类都是上一级分类的细化分支,可以将农产品的图片进行简单的属性抽取。例如:金川雪梨——{“水果”,“仁果类”,“苹果梨”},其中,金川雪梨属于苹果梨类,苹果梨属于仁果类,而仁果类又是水果的分类。对所有的农产品图片进行这类特征向量提取,但由于这类特征向量的属性值之间存在依赖,无法直接使用余弦相似度进行计算数据间的相似度。基于特色农产品服务平台中农产品分类特征,本实施例设计了一种特征向量存储结构,来帮助存储计算内存中农产品图片间的特征向量相似度,特征向量存储结构如图3所示,图3为特征向量存储结构示例图。应理解的是,在所述特征向量存储结构中,每层子树的权重不同,以此区分特征向量中属性的评分占比,即农产品分类时分类级别的重要性。通过树形存储结构,可以表现出特征向量属性间的依赖性。根据所述特征向量存储结构,对图片间特征向量相似度计算进行改进。例如,待处理图片x的第一特征向量为{x1,x2,x3},所述预设缓存数据库redis中的任一存储图片y的第二特征向量为{y1,y2,y3}。待处理图片x与存储图片y的特征向量相似度计算公式为:需要说明的是,计算图片与图片间的特征向量相似度,即获取图片数据间访问的相似度,当待处理图片x与存储图片y的特征向量相似度较高时,访问待处理图片x的同时也会影响存储图片y的潜在流行度。因此通过计算图片间的特征向量相似度,可以对暂时未被访问的图片进行潜在流行度计算。计算模块30,用于根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值。在具体实现中,计算所述待处理图片流行度,为了提高流行度的计算准确度,需要考虑所述待处理图片没被访问时,所述待处理图片潜在流行度,考虑所述待处理图片的潜在隐藏价值。通过所述第一特征向量和所述第二特征向量计算所述待处理图片与所述存储图片的特征向量相似度,获得所述待处理图片依赖于所述存储图片的目标潜在流行度。应理解的是,由于图片数据集较大,缓存所消耗资源较多,因此在进行数据缓存价值计算时,需要考虑使用redis缓存时的缓存代价,缓存代价主要分为传输代价、缓存成本。传输代价主要考虑数据传输读取耗时、服务器带宽等,传输读取耗时包括数据序列化以及反序列化过程。传输代价越高,其缓存代价越高;缓存成本与数据的大小相关,数据越大占用内存资源越多,其缓存代价越高。根据所述缓存参数和所述目标潜在流行度,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间,根据所述待处理图片对应的数据大小和传输时间可计算所述待处理图片的预测流行度,所述预设缓存价值函数为:其中,vx(t)为待处理图片x在当前周期t内的缓存价值,px(t)为待处理图片x在当前周期t内的预测流行度,cx为待处理图片x的缓存代价。所述获取模块20,还用于获取所述预设缓存数据库redis中的各存储图片的图片缓存价值;可理解的是,可通过获取所述预设缓存数据库redis中的各存储图片的数据大小及传输时间,并获取服务器带宽,根据所述服务器带宽、各存储图片的数据大小及传输时间,通过所述预设缓存价值函数计算所述预设缓存数据库redis中的各存储图片的图片缓存价值。存储模块40,用于将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis。需要说明的是,获取所述预设缓存数据库redis中各图片缓存价值中的最小值,将所述目标缓存价值与所述最小值进行比较,若所述目标缓存价值大于所述最小值,则将所述最小值对应的存储图片从所述预设缓存数据库redis中删除,此时,可判断所述预设缓存数据库redis中是否有足够的空间存储所述待处理图片,若有足够空间,则将所述待处理图片存储至所述预设缓存数据库redis,若没有足够空间,则返回获取所述预设缓存数据库redis中各图片缓存价值中的最小值的步骤,继续比较所述目标缓存价值与新的最小值,直至所述预设缓存数据库redis有足够的空间存储所述待处理图片或者所述待处理图片的所述目标缓存价值小于新的最小值。本实施例中,通过获取待处理图片,将所述待处理图片在预设缓存数据库redis中进行预缓存,获得所述待处理图片对应的缓存参数,未访问的数据可通过预缓存获得缓存参数,从而更加准确的计算缓存价值;获取所述待处理图片的第一特征向量,并获取所述预设缓存数据库redis中的各存储图片的第二特征向量,根据所述缓存参数、所述第一特征向量和所述第二特征向量通过预设缓存价值函数计算所述待处理图片的目标缓存价值,通过对缓存中已有数据的特征学习,从而提高计算缓存价值的准确性;获取所述预设缓存数据库redis中的各存储图片的图片缓存价值,将所述目标缓存价值与各图片缓存价值进行比较,根据比较结果判断是否将所述待处理图片存储至所述预设缓存数据库redis,根据更准确的缓存价值判断待处理数据是否需要进行缓存,使得缓存数据更贴近实际应用场景,更有价值。在一实施例中,所述待处理图片对应的缓存参数包括所述待处理图片对应的数据大小和传输时间;所述预缓存模块10,还用于获取待处理图片;将所述待处理图片进行序列化处理,获得序列化数据;计算所述序列化数据的数据大小,作为所述待处理图片对应的数据大小;将所述序列化数据在预设缓存数据库redis的预存储区域进行预缓存;计算从所述预设缓存数据库redis中读取所述待处理图片的耗时,获得所述待处理图片对应的传输时间。在一实施例中,所述计算模块30,还用于根据预设特征向量相似度公式,计算所述第一特征向量与各第二特征向量之间的特征向量相似度;根据所述特征向量相似度通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度;根据所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价;根据所述目标潜在流行度和所述目标缓存代价,通过预设缓存价值函数计算所述待处理图片的目标缓存价值。在一实施例中,所述计算模块30,还用于获取所述预设缓存数据库redis中的各存储图片在上一周期内的流行度;根据各存储图片在上一周期内的流行度及所述特征向量相似度,通过预设改进依赖数据潜在流行度公式,计算所述待处理图片的目标潜在流行度。在一实施例中,所述计算模块30,还用于获取服务器带宽;根据所述服务器带宽、所述待处理图片对应的数据大小和传输时间,通过预设改进缓存代价计算公式计算所述待处理数据的目标缓存代价。在一实施例中,所述存储模块40,还用于从各图片缓存价值中选取最小值作为最小缓存价值;将所述目标缓存价值与所述最小缓存价值进行比较;若所述目标缓存价值大于等于所述最小缓存价值,则将所述最小缓存价值对应的存储图片从所述预设缓存数据库redis中删除;判断所述预设缓存数据库redis是否有充足的缓存空间;若所述预设缓存数据库redis有充足的缓存空间,则将所述待处理图片存储至所述预设缓存数据库redis。在一实施例中,所述存储模块40,还用于若所述预设缓存数据库redis没有充足的缓存空间,则返回从各图片缓存价值中选取最小缓存价值的步骤,直至所述预设缓存数据库redis有充足的缓存空间或所述目标缓存价值小于各图片缓存价值中的最小值。本发明所述基于缓存价值的图片缓存装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(readonlymemoryimage,rom)/随机存取存储器(randomaccessmemory,ram)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1