一种基于图片缩略处理的分布式图片缓存方法
【专利摘要】本发明提供了一种基于图片缩略处理的分布式图片缓存方法。客户端访问缩略图时在访问请求中添加缩略图的尺寸特征;文件服务器收到访问缩略图的访问请求后,根据缩略图访问请求尺寸检查缓存中是否存在该尺寸的缩略图,是则将其发送至客户端,否则文件服务器按照缩略图尺寸访问请求生成该尺寸的缩略图,发送至客户端并将其加入到内存中进行缓存。可以显著减少因客户端访问文件缩略图时造成的大量重复计算和对磁盘的高频度访问,同时因为缓存的作用,可以显著提升对高频度访问的缩略图的访问速度,减少客户端的等待时间,自然的,可以增加系统的并发量和安全性,同时降低系统频繁计算造成的能耗。
【专利说明】一种基于图片缩略处理的分布式图片缓存方法
【技术领域】
[0001]本发明涉及一种基于图片缩略处理的分布式图片缓存方法,特别是涉及一种适用于节省互联网资源的基于图片缩略处理的分布式图片缓存方法。
【背景技术】
[0002]目前,互联网用户快速增长,大量的用户访问对系统平台的数据吞吐量和系统并发量都是一个巨大的考验。特别的,在系统访问中经过缩略的图片资源占据了很大一部分呢,如何提高访问经过缩略的图片资源就成了提高系统性能的重要部分。
[0003]在用于海量图片存储的文件系统中,客户端经常需要对原文做缩略处理并对缩略文件进行频繁的访问,而因为文件的缩略处理是很消耗计算量的事情,若每次都从文件服务器的物理磁盘中读取原图片文件再对其进行缩略处理将会造成对磁盘访问和对于CPU计算资源的巨大负担,因此,如何提升系统的访问速度和访问效率,降低相应时间,降低对于系统计算资源和存储资源的消耗,提升系统的并发性能,成为一个亟待解决的问题。
【发明内容】
[0004]本发明要解决的技术问题是提供一种节省体统资源,提高系统并发性能的分布式图片缓存方法。
[0005]本发明采用的技术方案如下:一种基于图片缩略处理的分布式图片缓存方法,其区别技术特征在于,其方法步骤为:
步骤一、客户端访问缩略图时在访问请求中添加缩略图的尺寸特征;
步骤二、文件服务器收到访问缩略图的访问请求后,根据缩略图访问请求尺寸检查缓存中是否存在该尺寸的缩略图,是则将其发送至客户端,否则进入下一步;
步骤三、文件服务器按照缩略图尺寸访问请求生成该尺寸的缩略图,发送至客户端并将其加入到内存中进行缓存。
[0006]作为优选,所述步骤三还包括,生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下。
[0007]作为优选,所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,先检测本地的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
[0008]作为优选,所述步骤三还包括,生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下,同时同步到该组内的其他文件服务器。
[0009]作为优选,所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,检测该组内的其他的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
[0010]作为优选,所述步骤三中:若相应尺寸的缩略图存在于该组内的其他文件文件服务器上,则将该文件服务器地址返回给客户端,由客户端进行再次访问。
[0011]作为优选,所述步骤三中:当需要在该文件服务器上生成缩略图时,文件服务器调用其上配置的图片缩略处理程序,根据客户端要求进行图片处理,处理后的缩略图片存入文件服务器本地磁盘,其路径与原文件路径相同,文件名后缀加上缩略图尺寸。
[0012]作为优选,所述步骤三中相应尺寸缩略图生成的具体方法为:首先读取存储在文件服务器中的原图文件,检测原图文件与缩略图的分别的长宽比,若不相同则需要先对原图文件进行相应的拉伸或缩放,根据缩略图与原图文件的尺寸比例,使用插值的方式对缩略图进行生成。
[0013]作为优选,所述方法步骤还包括:将文件服务器中的图片文件缩略图载入到内存中后,在内存中的缩略图标记队列添加记录。
[0014]作为优选,所述方法步骤还包括:系统定时检查已经缓存的缩略图文件,对于长时间未被访问的缩略图文件进行移除。
[0015]与现有技术相比,本发明的有益效果是:可以显著减少因客户端访问文件缩略图时造成的大量重复计算和对磁盘的高频度访问,同时因为缓存的作用,可以显著提升对高频度访问的缩略图的访问速度,减少客户端的等待时间,自然的,可以增加系统的并发量和安全性,同时降低系统频繁计算造成的能耗。
【专利附图】
【附图说明】
[0016]图1为本发明其中一实施例的缩略图访问过程示意图。
[0017]图2为本发明其中一实施例的缩略图生成过程示意图。
[0018]图3为本发明其中一实施例的缓存更新策略示意图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0020]本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0021]如图1、2和3所示,一种基于图片缩略处理的分布式图片缓存方法,其方法步骤为:
步骤一、客户端访问缩略图时,其访问方法与现有技术访问原文件基本相同,唯一的区别在于,在访问请求中添加缩略图的特征,在本具体实施例中,为在请最后添加缩略图的特征,此处以缩略图的尺寸来表示。
[0022]在本具体实施例中,在客户端传送来访问请求时,解析服务器检测该请求字串的末尾,若请求字串末尾存在thumbnail关键字,说明其实是对缩略图的访问;解析服务器检测客户端请求的缩略图特征,此处为缩略图的缩略尺寸,在本具体实施例中以40*40为例,在请求字串中,其完整表示为thumbnai 1=40*40 ;将访问经过解码后传递至文件服务器,请求文件服务器对应的图片资源。
[0023]步骤二、文件服务器收到访问缩略图的访问请求后,根据缩略图访问请求尺寸检查缓存中是否存在该尺寸的缩略图,是则将其发送至客户端,否则进入下一步。在本具体实施例中,当无客户端访问时,缩略图存储于文件爱你服务器的磁盘当中,当被客户端访问后,首先检查其在内存中有无缓存,若无在从对应的磁盘路径中读取该文件并将其加入到内存中进行缓存。
[0024]根据软件系统中的时间局限性和空间局限性原理,该缩略图文件很可能在将来的短时间内被多次重复访问。而从内存中读取数据的速度大大高于从磁盘中读取数据,而且也可减小对于磁盘访问的压力。
[0025]步骤三、文件服务器按照缩略图尺寸访问请求生成该尺寸的缩略图,发送至客户端并将其加入到内存中进行缓存。
[0026]上述步骤可以显著减少因客户端访问文件缩略图时造成的大量重复计算和对磁盘的高频度访问,同时因为缓存的作用,可以显著提升对高频度访问的缩略图的访问速度,减少客户端的等待时间,自然的,可以增加系统的并发量和安全性,同时降低系统频繁计算造成的能耗。
[0027]所述步骤三还包括,生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下。则缩略图访问请求再次发生时,只需要在在原文件日志中查找就可以知道该尺寸的缩略图是否存在,方便查找,节省访问请求时间。
[0028]所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,先检测本地的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
[0029]所述步骤三还包括,生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下,同时同步到该组内的其他文件服务器。
[0030]所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,检测该组内的其他的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
[0031]所述步骤三中:若相应尺寸的缩略图存在于该组内的其他文件文件服务器上,则将该文件服务器地址返回给客户端,由客户端进行再次访问。
[0032]在本具体实施例中,文件服务器接受缩略图访问请求,检测其原文件所在的路径,读取该路径下的缩略图生成日志进行查找,检测该尺寸的缩略图是否已经生成。若该尺寸的缩略图已经存在且位于本文件服务器,直接将其发送为客户端。若该缩略图文件已经存在但是位于该组内的其他文件服务器上,则将该文件服务器地址返回给客户端,由客户端进行再次的访问。若该尺寸的文件不存在则在本文件服务器上生成该缩略文件。然后将该缩略文件已生成的消息存储在本文件服务器原文件所在路径下的缩略图生成日志中,并将该尺寸的缩略图存储在该文件服务器的消息同步到该组内的其他文件服务器中。
[0033]所述步骤三中:当需要在该文件服务器上生成缩略图时,文件服务器调用其上配置的图片缩略处理程序,根据客户端要求进行图片处理,处理后的缩略图片存入文件服务器本地磁盘,其路径与原文件路径相同,文件名后缀加上缩略图尺寸。
[0034]在本具体实施例中,所述步骤三中相应尺寸缩略图生成的具体方法为:客户端传送来的缩略图在该组文件服务器中都不存在,调用文件服务器内的缩略图生成功能进行缩略图生成:缩略图生成程序检测要生成的缩略图特征,如缩略图要求为40*40,则首先读取存储在文件服务器中的原图文件,检测原图文件与缩略图的分别的长宽比,若不相同则需要先对原图文件进行相应的拉伸或缩放,根据缩略图与原图文件的尺寸比例,使用插值的方式对缩略图进行生成。将缩略图存储在原文件所在的文件目录下,其命名为原文件名.thumbnai1=40*40。
[0035]所述方法步骤还包括:将文件服务器中的图片文件缩略图载入到内存中后,在内存中的缩略图标记队列添加记录,方便在使用该缩略图时的查找。
[0036]所述方法步骤还包括:系统定时检查已经缓存的缩略图文件,对于长时间未被访问的缩略图文件进行移除。具体做法是检查每个缩略图的最近访问时间到当前时间的长度,若大于设定的阈值TimeRmv,则从内存中移除该缩略图文件,删除其在缓存队列中的记录。
【权利要求】
1.一种基于图片缩略处理的分布式图片缓存方法,其区别技术特征在于,其方法步骤为: 步骤一、客户端访问缩略图时在访问请求中添加缩略图的尺寸特征; 步骤二、文件服务器收到访问缩略图的访问请求后,根据缩略图访问请求尺寸检查缓存中是否存在该尺寸的缩略图,是则将其发送至客户端,否则进入下一步; 步骤三、文件服务器按照缩略图尺寸访问请求生成该尺寸的缩略图,发送至客户端并将其加入到内存中进行缓存。
2.根据权利要求1所述的图片缓存方法,所述步骤三还包括,生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下。
3.根据权利要求1所述的图片缓存方法,所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,先检测本地的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
4.根据权利要求1所述的图片缓存方法,所述步骤三还包括:生成相应尺寸的缩略图后,将该事件记录在原文件的目录日志下,同时同步到其他文件服务器。
5.根据权利要求1或3所述的图片缓存方法,所述步骤三还包括:文件服务器在生成相应尺寸的缩略图前,检测其他的原文件服务器是否存在该尺寸的缩略图,是则将其发送至客户端并将其加入到内存中进行缓存。
6.根据权利要求5所述的图片缓存方法,所述步骤三中:若相应尺寸的缩略图存在于其他文件文件服务器上,则将该文件服务器地址返回给客户端,由客户端进行再次访问。
7.根据权利要求1所述的图片缓存方法,所述步骤三中:当需要在该文件服务器上生成缩略图时,文件服务器调用其上配置的图片缩略处理程序,根据客户端要求进行图片处理,处理后的缩略图片存入文件服务器本地磁盘,其路径与原文件路径相同,文件名后缀加上缩略图尺寸。
8.根据权利要求1所述的图片缓存方法,所述步骤三中相应尺寸缩略图生成的具体方法为:首先读取存储在文件服务器中的原图文件,检测原图文件与缩略图的分别的长宽比,若不相同则需要先对原图文件进行相应的拉伸或缩放,根据缩略图与原图文件的尺寸比例,使用插值的方式对缩略图进行生成。
9.根据权利要求1所述的图片缓存方法,所述方法步骤还包括:将文件服务器中的图片文件缩略图载入到内存中后,在内存中的缩略图标记队列添加记录。
10.根据权利要求1所述的图片缓存方法,所述方法步骤还包括:系统定时检查已经缓存的缩略图文件,对于长时间未被访问的缩略图文件进行移除。
【文档编号】G06F17/30GK104239435SQ201410431971
【公开日】2014年12月24日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】刘 东, 李晓东, 肖锋, 黄德俊, 方临江 申请人:四川长虹电器股份有限公司