Object Cache与Batcache都是基于Memcache扩展。所以如果你想使用这种缓存机制,先要确定你的服务器是否启用了Memcache这个功能或者是否支持兼容Memcache协议的缓存服务(如阿里云OCS)。
Object Cache即对象缓存,Object Cache只缓存那些服务器生成上面的响应过程中创建的“数据”或对象。举个例子来说,如果一个Blog的首页有一个列表,比如最新的6个文章,友情链接,指向最新6个评论的链接等等; 服务器可以“单独”地以原始数据格式(raw data format)缓存它们,所以在未来的调用请求中,这些内容可以被一个接一个地取回。简单来说,一般的缓存是将生成的“结果”保存起来供下次相同请求时调用,而对象缓存是将生成过程中的零件们进行缓存,下次有相同请求时无须现找零件而是即时拼装,所以也降低了服务器负载(特别是数据库请求次数)。对象缓存比全内容HTML缓存要更灵活,因为它允许当缓存内容发生改变时,只使部分缓存失效。比如当一条新评论在你的博客上发表时,完全没必要更新最新文章列表。另外,它还可以更容易地从以往请求内容的缓存数据中拼凑出新的请求(比如,博客“单文章”页可能也包含最新评论列表)。
BatCache以插件的形式存在的,主要是将生成的“结果”缓存起来(例如html页面)。和WP Super Cache等常用的缓存插件类似,但由于BatCache内容是存放在内存中的,所以缓存页面响应速度会比WP Super Cache等更快。
我的上篇文章《WordPress怎样使用阿里云OCS》里面介绍的缓存机制即BatCache和Object Cache同时使用,有效的降低了网站的负载。如果你的服务器支持Memcache或者能够使用兼用Memcache协议的OCS服务,建议你同时启用BatCache和Object Cache。如果你的页面有需要动态处理的内容而无法使用BatCache,建议你也至少要启用Object Cache。Object Cache对于降低数据库查询次数的效果可以说立竿见影,如果你没有做过其他方面的优化的话,单独使用Object Cache可以看到非常显著的数据库查询数下降。