缓存插件。缓存插件的用途一般来说有二,一是降低服务器的负载,不管是CPU占用率还是数据库查询次数,二是提高访客访问站点的速度。对于

WordPress这样的几乎没什么是静态的东西来说,使用一种或多种缓存插件可能是最简单的提升访问速度和降低负载的方法。

我们经常听到或用到的缓存插件有二,WP Super Cache和Hyper Cache,它们的功能都是将你的动态页面静态化,将经常调用的页面以静态的html文

件展示,而不是来一个访客“动态”生成一次页面。这种机制可以极大地降低服务器负载,特别是对于访问量很大的站点来说。这种缓存方式称之为

“全内容HTML缓存”。但是这种缓存方式有一个小问题,对于页面上“必须”动态生成或实时联络的内容而言(比如侧边栏的某些挂件),静态页面

意味着它们的功能失效。由此带来的问题是有些内容无法实时显示,广告无法显示等等。那有没有比较温柔的“无痛”缓存既能缓存一些内容降低负

载,又能够和这些插件和平共处没准还能让我们赚点小钱呢?Object Cache是个不错的选择,当然如果你喜欢插件形式的,BatCache也可以。

把它俩放到一起说的原因是这两个小东西都基于服务器的Memcache扩展,所以如果你想使用这种缓存机制,先咨询下你的服务商是否在服务器上启用

了它。有了Memcache这个前提,Object Cache那就是直接就用啊。

什么是Object Cache或对象缓存?它和一般生成静态HTML页面的缓存(比如WP Super Cache或Hyper Cache)有什么不同?

一般的缓存是将服务器生成的完整HTML响应进行存档,将之保存为静态的文件保存在硬盘上以供下次调用,一般来说这样的机制都会给静态文件

一个有效期,在特定时间或特定动作之后,当前缓存过期并重新生成。

Object Cache则是另一种形式的缓存。它只缓存那些服务器生成上面的响应过程中创建的“数据”或对象。举个例子来说,如果一个Blog的首页

有一个列表,比如最新的5个文章,友情链接,指向最新5个评论的链接等等; 服务器可以“单独”地以原始数据格式(raw data format)缓存它们

,所以在未来的调用请求中,这些内容可以被一个接一个地取回。

简单来说,一般的缓存是将生成的“结果”保存起来供下次相同请求时调用,而对象缓存是将生成过程中的零件们进行缓存,下次有相同请求时

无须现找零件而是即时拼装,所以也降低了服务器负载(特别是数据库请求次数)。

对象缓存比全内容HTML缓存要更灵活,因为它允许当缓存内容发生改变时,只使部分缓存时效。比如当一条新评论在你的博客上发表时,完全没

必要更新最新文章列表。另外,它还可以更容易地从以往请求内容的缓存数据中拼凑出新的请求,(比如,博客“单文章”页可能也包含最新评论列

表)。

所以你基本可以认为Object Cache是一个有条件的话一定必须肯定绝对要启用的东西,尽管它在WordPress 2.5及以上版本中没有默认开启,需要我

们自己往里面添加点内容启用它。据我自己的测试,它和任何其他的缓存插件,不管是Hyper Cache还是WP Super Cache还是DB Cache或是

Autoptimize都能够和平相处,所以,既然无痛而且确实有效,让我们都启用它吧。

原本Object Cache是WordPress内建的一个东西,但是由于种种原因在WP 2.5及以后版本中就取消了,或者说不再内建了。但是相关的API调用还在并

且都能正常工作,所以我们要做的就是用一个小文件启用它。

这个小程序全称File-Based Caching for WordPress,作者是Neosmart的Mahmoud H. Al-Qudsi,文件请访问这个页面下载。WOPUS之前的一篇文章也

对Object Cache做过简单的介绍。

使用方法很简单,上传object-cache.php文件到你的Wordpress的wp-content目录下(不是Plugins目录啊~),然后同样还在wp-content目录下

新建一个名为cache的文件夹并确保文件夹可写。然后,修改你的wp-config.php文件,在 define (‘WPLANG’, ‘zh_CN’); 这行后加上:

// Enable the WordPress Object Cache:
define(ENABLE_CACHE, true);

然后保存文件即可。

接下来你要做的就是多刷新几次你的博客,看看cache文件夹中是否多了些东西,那就是Object Cache的缓存文件了。另外,如果你留意你的数据库

查询次数和时间的话会发现,这两个值都有非常明显的下降,这表明你的Object Cache已经正常工作了。

BatCache和Object Cache类似,同样基于Memcache扩展,但是它是以插件的形式存在的,适用于那些由于各种原因无法使用WP Super Cache等常用缓

存插件的用户,大家可以到Wordpress的BatCache插件页查看。

Object Cache如果搭配另一个数据库插件DB Cache,数据库查询次数还会进一步降低。它几乎和所有的插件都能够和平共处。