作者:张荣华
日期:
关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应用中 的时
间内都在访问 的数据,那么,这时候就应该使用缓存了。这个和长尾理论正好相悖,
其实也不是相悖,只是不同的理论使用的场景不同。在 原则生效的地方,我们都应
该考虑是否可以使用缓存。但即使是这样,缓存也有不同的用法,举个例子,一个网站的
首页估计是被访问的次数最多的,我们可以考虑给首页做一个页面缓存,而如果在某个页
面上,比如说 的 版区只有前几个页面是访问最频繁的,(假设 是
使用 ,当然这只是假设,我们都知道 是使用 开发的)那么我们就
可以考虑给 版区的 做二级缓存了,因为二级缓存中是按照对象的 来保存的,
所以应该来说这前面几页使用的对象会一直存在于缓存之中(如何使用 的二级
缓存坛子上也有介绍)。由此可见不同的页面的缓存策略有可能有天壤之别。
本文的目的就是上面所讲的两种情况之一,页面缓存。毫无疑问,几乎所有的网站的
首页都是访问率最高的,而首页上的数据来源又是非常广泛的,大多数来自不同的对象,
而且有可能来自不同的 ,所以给首页做缓存是一个不错的主意,那么主页的缓存策略是
什么样子的呢,我认为应该是某个固定时间之内不变的,比如说 分钟更新一次。那么这
个缓存应该做在什么地方呢,让我们来看一下,假设您的应用的结构是
,这个过程中的的地方都是可以做缓存的地方,根据页面缓存的
特征,应该把页面缓存做到尽量靠近客户的地方,就是在 和 之间,这样的优
点就是第一个用户请求之后,页面被缓存,第二个用户再来请求的时候,走到 这个
请求就结束了,无需再走后面的 。带来的好处是服务器压力的减
低和客户段页面响应速度的加快。
那么我们来看一下如何使用 做到这一点。
在使用 的页面缓存之前,我们必须要了解 的几个概念,
!"#,多长时间不访问该缓存,那么 就会清除该缓存。
!$#,缓存的存活时间,从开始创建的时间算起。
看到这里,我们知道,首页的页面缓存的存活时间,我们定的是 分钟,那么也就是
说我们的 !$# 应该设置为 ,同时我们的 !"# 最好
也设置为 分钟,或者大于 分钟。我们来看一下下面这个配置,这个配置片段应该放到
%& 中:
' ()# *+,)
&- ". ())
&- /01())
()2)
34!01()5)
1#657#8.6())
!"#())