一种缓存管理方法和装置制造方法

文档序号:6509372阅读:155来源:国知局
一种缓存管理方法和装置制造方法
【专利摘要】本发明提供了一种缓存管理方法及装置,该方法包括:以第一缓存保存完整的页面,以第二缓存保存构成所述页面的页面片段,以第三缓存保存构成所述页面片段的原始数据;实时计算所述第一缓存中的页面的缓存命中率;如果所述缓存命中率高于设定的第一阈值,则保持将所述页面保存在所述第一缓存中;否则从所述第一缓存中删除所述页面。利用本发明,可以提高缓存的使用效率。
【专利说明】一种缓存管理方法和装置

【技术领域】
[0001]本发明涉及网站【技术领域】,具体而言,涉及一种缓存管理方法和装置。

【背景技术】
[0002]目前在网站【技术领域】,大部分网站通过将经常使用的数据在更高速的存储中进行临时存储,在访问的时候直接使用高速缓存中的数据以避免对低速设备的访问,从而提高了系统的性能。
[0003]目前各个网站在使用缓存的过程中采用单一缓存,然而,数据的访问特点是不同的,单一的缓存无法解决数据的差异性,从而导致缓存的利用效率低下。


【发明内容】

[0004]本发明实施例提供一种缓存管理方法和装置,以提高缓存利用效率。
[0005]为此,本发明实施例提供如下技术方案:
[0006]一种缓存管理方法,包括:
[0007]以第一缓存保存完整的页面,以第二缓存保存构成所述页面的页面片段,以第三缓存保存构成所述页面片段的原始数据;
[0008]实时计算所述第一缓存中的页面的缓存命中率;
[0009]如果所述缓存命中率高于设定的第一阈值,则保持将所述页面保存在所述第一缓存中;否则从所述第一缓存中删除所述页面。
[0010]进一步地,所述方法还包括:
[0011]实时计算所述第二缓存中的页面片段的缓存命中率;
[0012]如果所述页面片段的缓存命中率高于设定的第二阈值,则保持将所述页面片段保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
[0013]进一步地,所述方法还包括:
[0014]实时计算所述第三缓存中的原始数据的缓存命中率;
[0015]如果所述原始数据的缓存命中率高于设定的第三阈值,则保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
[0016]优选地,以第一缓存保存完整的页面包括:
[0017]以所述页面的URL为键对所述页面进行保存。
[0018]优选地,以第二缓存保存构成所述页面的页面片段包括:
[0019]以所述页面的URL加所述页面片段的编号为键将所述页面片段的文本进行保存。
[0020]优选地,以第三缓存保存构成所述页面片段的原始数据包括:
[0021]以所述原始数据的对象类型和对象主键ID作为联合键将所述原始数据进行存储。
[0022]一种用于网站的缓存管理装置,包括:
[0023]第一缓存,用于保存完整的页面;
[0024]第二缓存,用于保存构成所述页面的页面片段;
[0025]第三缓存,用于保存构成所述页面片段的原始数据;
[0026]计算模块,用于实时计算所述第一缓存中的页面的缓存命中率;
[0027]更新模块,用于在所述页面的缓存命中率高于设定的第一阈值时,保持将所述页面保存在所述第一缓存中,否则从所述第一缓存中删除所述页面。
[0028]进一步地,所述计算模块,还用于实时计算所述第二缓存中的页面片段的缓存命中率;
[0029]相应地,所述更新模块,还用于在所述页面片段的缓存命中率高于设定的第二阈值时,保持将所述页面保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
[0030]进一步地,所述计算模块,还用于实时计算所述第三缓存中的原始数据的缓存命中率;
[0031]相应地,所述更新模块,还用于在所述原始数据的缓存命中率高于设定的第三阈值时,保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
[0032]优选地,所述第一缓存以所述页面的URL为键对所述页面进行保存。所述第二缓存以所述页面的URL加所述页面片段的编号为键将所述页面片段的文本进行保存。所述第三缓存以所述原始数据的对象类型和对象主键ID作为联合键将所述原始数据进行存储。
[0033]本发明实施例提供的缓存管理方法和装置,采用分级缓存方式,可以根据数据的特点进行针对性地选择特定的缓存,从而使缓存的利用效率得到极大的提升。进一步地,通过自动调整缓存的使用方式,可以根据系统数据的特点实时动态调整缓存的使用,从而进一步提高缓存的使用效率。

【专利附图】

【附图说明】
[0034]图1是本发明实施例缓存管理方法的流程图;
[0035]图2是本发明实施例缓存管理装置的结构示意图;
[0036]图3是本发明实施例中网站系统分级缓存的架构示意图;
[0037]图4是本发明实施例中网站自动调整系统分级缓存的过程示意图。

【具体实施方式】
[0038]下面将参考附图并结合实施例,来详细说明本发明。
[0039]针对现有技术中各个网站在使用缓存的过程中采用单一缓存,使得缓存利用率低的问题,本发明实施例提供一种用于网站的缓存管理方法和装置,采用分级缓存方式,可以根据数据的特点进行针对性地选择特定的缓存,从而使缓存的利用效率得到极大的提升。进一步地,通过自动调整缓存的使用方式,可以根据系统数据的特点实时动态调整缓存的使用,从而进一步提高缓存的使用效率。
[0040]需要说明的是,在本发明实施例中,不同级别的缓存的具体实现可以采用下述方式。
[0041]页面缓存:页面缓存的实现在具体实施的时候通过过滤器的技术进行实现,在过滤器一级截获请求的页面,并以URL为键将页面的文本进行缓存。在具体实现的时候,要求系统不仅能够将页面缓存,还能够根据外部指令进行动态选择是使用缓存还是直接生成页面。
[0042]页面片段缓存:页面片段的缓存可以使用前面页面缓存的技术,在生成页面的时候将页面片段进行缓存,缓存以URL加片段编号为键将页面片段的文本进行缓存。在具体实现的时候,同样要求系统不仅能够将页面片段缓存,还要能够根据外部指令进行动态选择是使用页面片段缓存还是直接生成页面片段。
[0043]原始数据缓存:原始数据缓存的实现可以基于内存中的对象进行,将原始数据提取之后封装到内存数据对象中,在以后的修改、删除和查询的过程中直接使用内存数据对象,从而避免了对数据库的访问。在内存存储数据对象的时候,可以使用对象类型和对象主键ID作为联合键进行存储,在数据操作的时候通过键获取到相应的数据对象,再进行数据的处理和展示。在具体实现的时候,同样要求系统不仅能够将原始数据缓存,还要能够根据外部指令进行动态选择是使用原始数据缓存还是直接访问数据库获取数据。
[0044]如图1所示,是本发明实施例缓存管理方法的流程图,包括以下步骤:
[0045]步骤101,以第一缓存保存完整的页面,以第二缓存保存构成所述页面的页面片段,以第三缓存保存构成所述页面片段的原始数据;
[0046]步骤102,实时计算所述第一缓存中的页面的缓存命中率;
[0047]步骤103,如果所述缓存命中率高于设定的第一阈值,则保持将所述页面保存在所述第一缓存中;否则从所述第一缓存中删除所述页面。
[0048]当然,针对第二缓存中的页面片段,也可以实时计算所述第二缓存中的页面片段的缓存命中率。如果所述页面片段的缓存命中率高于设定的第二阈值,则保持将所述页面片段保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
[0049]同样,针对第三缓存中的原始数据,也可以实时计算所述第三缓存中的原始数据的缓存命中率。如果所述原始数据的缓存命中率高于设定的第三阈值,则保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
[0050]页面片段的缓存命中率指的是要访问的页面片段在缓存中找到和没在缓存中找至IJ(需要实时生成)的比例关系,即在缓存中找到的次数与总的查找次数(在缓存中找到的次数和在缓存中没有找到的次数的总和)的百分比。同理,针对原始数据的缓存命中率指的也是在缓存中找到和没在缓存中找到(需要访问数据库获取)的比例关系,两者的计算方法是一致的。
[0051]需要说明的是,上述第一阈值、第二阈值、以及第三阈值可以相同,也可以不同,对此本发明实施例不做限定。
[0052]可见,本发明实施例提供的缓存管理方法,采用分级缓存方式,可以根据数据的特点进行针对性地选择特定的缓存,从而使缓存的利用效率得到极大的提升。进一步地,通过自动调整缓存的使用方式,可以根据系统数据的特点实时动态调整缓存的使用,从而进一步提高缓存的使用效率。
[0053]相应地,本发明实施例还提供一种缓存管理装置,如图2所示,是该装置的一种结构示意图。
[0054]在该实施例中,所述装置包括:
[0055]第一缓存201,用于保存完整的页面;
[0056]第二缓存202,用于保存构成所述页面的页面片段;
[0057]第三缓存203,用于保存构成所述页面片段的原始数据;
[0058]计算模块204,用于实时计算所述第一缓存中的页面的缓存命中率;
[0059]更新模块205,用于在所述页面的缓存命中率高于设定的第一阈值时,保持将所述页面保存在所述第一缓存中,否则从所述第一缓存中删除所述页面。
[0060]当然,在本发明缓存管理装置的另一实施例中,计算模块204也可以实时计算所述第二缓存中的页面片段的缓存命中率。相应地,更新模块205,还用于在所述页面片段的缓存命中率高于设定的第二阈值时,保持将所述页面片段保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
[0061]同样,在本发明缓存管理装置的另一实施例中,计算模块204也可以实时计算所述第三缓存中的原始数据的缓存命中率。相应地,更新模块205,还用于在所述原始数据的缓存命中率高于设定的第三阈值时,保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
[0062]页面片段的缓存命中率、以及原始数据的缓存命中率的计算与页面的缓存命中率的计算类似,在此不再详细描述。
[0063]本发明实施例的缓存管理方法及装置可以应用于网站系统,使其实现分级缓存。如图3所示,是本发明实施例中网站系统分级缓存的架构示意图。
[0064]用户访问网站,请求一个页面,在网站分级缓存架构中页面是由若干个页面片段合成的,同时页面片段也是基于原始数据生成的,原始数据则是从数据库中获取的。
[0065]基于图3所示的架构,可以将返回给用户的完整页面进行缓存,也可以将其中的某个页面片段进行缓存,也可以将原始的数据进行缓存,这样就构成了网站分级缓存的架构。
[0066]如果将整个页面进行缓存,则下次用户访问该页面的时候可以直接从缓存中获取页面,则省去了后面的页面合成、页面片段生成、原始数据获取等过程,从而提高了系统访问的性能。同理,如果将页面片段进行缓存,则会省去后面的页面片段合成、原始数据获取的过程,也在一定程度上提高了系统访问的性能。
[0067]上述网站分级缓存架构,可以根据不同数据访问的特点,使用不同的缓存方式。即有些数据的访问适合使用整个页面的缓存,有些数据的访问适合页面片段的缓存,而有些数据适合原始数据缓存,通过结合多级缓存方式可以最大化缓存的使用,可以大大提高数据的缓存效率。
[0068]具体地,可以根据缓存的数据是否经常变化来决定缓存方式,比如,有些页面保持不变,有些页面经常变化。例如图书推荐的页面,假设页面的地址为:
[0069]http://www.book, com/recommend.1sp?page=l
[0070]http://www.book, com/recommend.1sp?page=2
[0071]http://www.book, com/recommend.1sp?page=3
[0072]就这三页保持不变,那么可以将这三页按照页面缓存方式即URL为键缓存起来,用户在查看推荐的时候就可以直接使用这些缓存的页面了。但是针对检索的页面来说就不适合做页面缓存,因为这些页面经常变化,而且差异较大。例如,检索的地址为:
[0073]http://www.search, com/result.jsp?keyword=海星
[0074]http://www.search, com/result.jsp?keyword=小偷
[0075]http://www.search, com/result.jsp?keyword=马桶刷
[0076]一个人检索的结果,不大可能是另外一个人检索的,这种情况如果采用页面缓存方式,则基本上是白白占用内存。
[0077]而对于检索结果页面中如果有一块显示热门检索词的区域,那么这个区域可以进行页面片段缓存,因为不同的人检索的结果页面不同,但是页面中的这块区域都是相同的,因此可以缓存起来,在不同的结果页面合成的时候直接拿来使用。
[0078]因此,在本发明实施例中,不同的缓存方式可以针对不同的情况分别对待,当然也可以同时使用上述的三种缓存方式。
[0079]如图4所示,是本发明实施例中网站自动调整系统分级缓存的过程示意图。
[0080]在该过程中,计算模块需要实时统计页面、页面片段、原始数据的缓存命中率,例如针对页面来说,收集统计缓存的页面访问次数和物理页面的访问次数,并计算缓存页面的访问次数与总的访问次数的百分比,在低于设定阈值(第一阈值)时向页面缓存发送去缓存的指令,在高于设定阈值时发送使用缓存的指令,相应的各个缓存模块在收到指令后自动调整缓存的使用。
[0081]具体调整过程如下:
[0082]步骤1:首先系统使用页面缓存。
[0083]步骤2:计算模块计算页面缓存命中率,如果计算得到的页面缓存命中率低于设定阈值(第一阈值),则去掉页面缓存,如果始终高于设定阈值(第一阈值),则维持页面缓存的使用。
[0084]步骤3:在页面缓存命中率低于设定阈值(第一阈值)时,系统自动去掉页面缓存,改为使用页面片段缓存。
[0085]步骤4:计算模块继续计算页面片段缓存命中率,如果计算得到的页面片段缓存命中率低于设定阈值(第二阈值),则去掉页面片段缓存,如果始终高于设定阈值(第二阈值),则维持页面片段缓存的使用。
[0086]步骤5:在页面片段缓存的命中率低于设定阈值(第二阈值)时,系统自动去掉页面片段缓存,改为使用原始数据缓存。
[0087]步骤6:计算模块继续计算原始数据缓存命中率,如果计算得到的原始数据缓存命中率低于设定阈值(第三阈值),则去掉原始数据缓存,改为直接访问数据库获取数据,如果始终高于设定阈值(第三阈值),则维持原始数据缓存的使用。
[0088]需要说明的是,上述对不同缓存命中率的计算可以同时进行,在具体实现时,可以由不同的线程来完成。
[0089]由此可见,利用本发明缓存管理方法和装置,由网站自动调整系统分级缓存,提高了系统分级缓存的利用效率,并具有以下显著效果:
[0090]1.提高了系统性能:通过分级缓存的使用,以及自动调整功能的使用,可以使得系统能够以一种最优的方式使用缓存,最大化利用缓存,从而提高了系统的响应速度,提高了性能。
[0091]2.提高了系统资源的利用率:缓存是一种系统资源,在缓存的使用过程中也需要用到底层的系统资源,而分级缓存及自动调整功能的使用使得资源的利用效率更高,更能够发挥资源的价值。
[0092]3.实现了系统资源的最优化配置:在使用缓存的过程中必然要应用系统的高速存储,如内存等,这些资源的使用必然减少了其他系统功能运行所需要的资源,尤其在缓存使用不当的情况下,更是对资源的一种浪费。而自动调整分级缓存的实现可以自动的最优化的使用资源,从而避免了出现资源被占用而利用效率又不高的问题。提高了系统的资源优化配置能力。
[0093]本发明实施例提供的缓存管理方法和装置,可以根据数据的特点进行针对性地选择特定的缓存方式,从而在缓存的利用效率上得到极大的提升,同时自动调整缓存的使用方式可以根据系统数据的特点实时动态调整缓存的使用,从而做到进一步提高缓存的使用效率。
[0094]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0095]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种缓存管理方法,其特征在于,包括: 以第一缓存保存完整的页面,以第二缓存保存构成所述页面的页面片段,以第三缓存保存构成所述页面片段的原始数据; 实时计算所述第一缓存中的页面的缓存命中率; 如果所述缓存命中率高于设定的第一阈值,则保持将所述页面保存在所述第一缓存中;否则从所述第一缓存中删除所述页面。
2.根据权利要求1所述的方法,其特征在于,还包括: 实时计算所述第二缓存中的页面片段的缓存命中率; 如果所述页面片段的缓存命中率高于设定的第二阈值,则保持将所述页面片段保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
3.根据权利要求1或2所述的方法,其特征在于,还包括: 实时计算所述第三缓存中的原始数据的缓存命中率; 如果所述原始数据的缓存命中率高于设定的第三阈值,则保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
4.根据权利要求1所述的方法,其特征在于,以第一缓存保存完整的页面包括: 以所述页面的URL为键对所述页面进行保存。
5.根据权利要求1所述的方法,其特征在于,以第二缓存保存构成所述页面的页面片段包括: 以所述页面的URL加所述页面片段的编号为键将所述页面片段的文本进行保存。
6.根据权利要求1所述的方法,其特征在于,以第三缓存保存构成所述页面片段的原始数据包括: 以所述原始数据的对象类型和对象主键ID作为联合键将所述原始数据进行存储。
7.一种用于网站的缓存管理装置,其特征在于,包括: 第一缓存,用于保存完整的页面; 第二缓存,用于保存构成所述页面的页面片段; 第三缓存,用于保存构成所述页面片段的原始数据; 计算模块,用于实时计算所述第一缓存中的页面的缓存命中率; 更新模块,用于在所述页面的缓存命中率高于设定的第一阈值时,保持将所述页面保存在所述第一缓存中,否则从所述第一缓存中删除所述页面。
8.根据权利要求7所述的装置,其特征在于, 所述计算模块,还用于实时计算所述第二缓存中的页面片段的缓存命中率; 所述更新模块,还用于在所述页面片段的缓存命中率高于设定的第二阈值时,保持将所述页面保存在所述第二缓存中;否则从所述第二缓存中删除所述页面。
9.根据权利要求7或8所述的装置,其特征在于, 所述计算模块,还用于实时计算所述第三缓存中的原始数据的缓存命中率; 所述更新模块,还用于在所述原始数据的缓存命中率高于设定的第三阈值时,保持将所述原始数据保存在所述第三缓存中;否则从所述第三缓存中删除所述原始数据。
10.根据权利要求7所述的装置,其特征在于, 所述第一缓存以所述页面的URL为键对所述页面进行保存。 所述第二缓存以所述页面的URL加所述页面片段的编号为键将所述页面片段的文本进行保存。 所述第三缓存以所述原始数据的对象类型和对象主键ID作为联合键将所述原始数据进行存储。
【文档编号】G06F17/30GK104424120SQ201310384995
【公开日】2015年3月18日 申请日期:2013年8月29日 优先权日:2013年8月29日
【发明者】齐明, 李少明 申请人:北大方正集团有限公司, 方正信息产业控股有限公司, 北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1