刚刚给博客添加了缓存插件。我选用了WP-super-cache。先简单的介绍一下。

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress强大的插件功能,把WordPress变成一个内容管理系统(CMS)来使用。比如我建的中国高校网络技术联盟,就是CMS类型的

WordPress下最出名的缓存插件有两款,分别是由国际友人Donncha O Caoimh开发的wp super cache和国内达人jiangdong开发的cos-htm-cache。

当然,从知名度和普及程度来说,当然是wp super cache稳居WordPress缓存插件的头把交椅!但是,经过我的分析,我发现这两款插件各有优缺点,分别适用于不同的情况。这是wp super cache的缓存机制决定的。wp super cache本身并不真正生成html文件(这也是为什么wp super cache可以缓存非以html为结尾的网址的原因),他只是生成缓存文件。

所以当网友访问某一个页面的时候,wp super cache首先查询缓存文件,看文件是否已经缓存:如果还未缓存,则进行PHP解析和数据库查询,在前台生成网页文件同时缓存该文件以备后续的访问者浏览;如果已经生成缓存,则直接调用缓存在前台显示而不进行PHP解析和数据库查询。

如果网友什么也没干,只是浏览了自己需要的内容就关闭了页面,则wp super cache停止工作,等待下一位访问者;如果网友留言,则将新增加的数据加入数据库并写入缓存。并且wp super cache有缓存过期机制,当预设的时间到达之后,缓存即过期,需要重新生成。这是wp super cache的工作机制。而对于cos-html-cacahe而言,则是另一种情况。Cos-html-cacahe本身可以生成完全静态的html的网页文件,可以完全脱离数据库而独立存在。

当某一页面被第一次访问,则进行PHP解析和数据库查询,并在前台生成网页文件,如果用户什么也没干即离开网页,则在相应的物理目录之下生成html文件;如果用户留言则将新增加的数据一并写成一个html文件存放于相应的物理目录之下。以后,所有的浏览者在访问这一页面的时候,直接调用相应的html文件,而不进行PHP解析和数据库查询,直至有用户有新的留言,这是则将新的数据写入数据库并重新生成html文件。这是cos-html-cacahe的工作机制。

分析了两种插件的缓存机制之后,我们可以得出这样一个结论:

wp super cache适用于网友经常留言的博客,而cos-html-cacahe则适用于流量大但是留言不频繁的博客。这是因为wp super cache的缓存机制是“增补法”,有了新的东西就增加到缓存中去;而cos-html-cacahe则是“全新制造法”,有了新的内容,就完全重建一个文件。

在这种缓存机制之下:

如果有的博客很热门,有一批忠实的粉丝,经常登陆留言,那么使用wp super cache是合适的,因为这款插件在增加新的数据时对服务器的压力较小;而使用cos-html-cacahe是不合适的,因为这款插件会反复的生成html文件,反而会加重服务器的负担,降低访问速度。

但是有的博客,网友经常通过搜索引擎找到他们,在看完了自己需要的内容之后,并不留言,而是离开,则使用cos-html-cacahe较为合适,因为并无新的数据增加,并且html的显示速度是最快的!但是这类博客使用wp super cache却不合适,因为wp super cache会不停的过期缓存,重新生成缓存(这时其实并无新增数据),等于是在做无用功,反而减重服务器负担,降低了速度。

所以,使用WordPress的博友们,请分析一下你属于哪种情况,然后选择一款合适自己的缓存插件,而不要盲目迷信名牌。我因为留言比较多,选择了WP-super-cache,下面我介绍一下WP-super-cache的安装方法

WP-Super-Cache插件介绍:
WordPress静态化插件,感觉寻找这样插件的人不在少数,人们都说WordPress非常消耗资源,所以,希望有这样的文件。与 WP-Cache 相同,可以通过缓存来提高大负载下WordPress的性能。WP Super Cache 相比 WP-Cache 最大的改进,在于加入了 Super Cache 这一环节。部分页面会根据一定的规则被缓存为 SuperCache,而这个 SuperCache 实质上就是页面本身。通过 Apache mod_rewrite 重定向直接访问这些静态文件,理论上可以获得更好的性能。

WP-Super-Cache插件安装:

  1. 下载WP-Super-Cache插件,然后上传插件到/wp-content/plugins/文件夹。
  2. 到wp管理后台插件页面激活插件,激活后插件后,它会出现红色警告,这时需要您在wp-config.php文件里加入如下代码:define(‘WP_CACHE’, true);
  3. 在后台的管理页面的Setting–>WP-Super-Cache,对这个插件进行相关的设定,进入这个页面时,在上方它会提示您,让您把wp-content的权限设置为755,设置好后

WP Super Cache 基本使用
上传 WP Super Cache 到插件目录,并在 Plugin 目录下激活之后,就可以到 Setting > WP Super Cache 进行详细配置。

WP Super Cache Status
首先是三个选项:

ON (WP Cache and Super Cache enabled)
HALF ON (Super Cache Disabled, only legacy WP-Cache caching.)
OFF (WP Cache and Super Cache disabled)
默认情况下,WP Super Cache 是没有开启的,所以在这里选择下,需按则第一个,就是 Super Cache,缓存为静态文件,如果第二种情况呢,则和 WP-Cache 一致。

Proudly tell the world your server is Digg proof! (places a message in your blog’s footer)
这个是说在你的 footer 显示一条信息告诉读者该博客已经缓存了,一般不要这样做。

Clear all cache files when a post or page is published. (This may significantly slow down saving of posts.)
这个是说发布新日志的时候清理所有缓存,这个肯定不能这么干了。

Super Cache Compression
启动这个则会成生 gzip 压缩,节省你的带宽。

Mod Rewrite Rules
WP Super Cache 是通过 Mod Rewrite 实现访问静态文件的,所以这里在是显示添加的 Mod Rewrite 规则。

Expiry Time and Garbage Collection
过期时间和垃圾收集,这里主要设置缓存文件过期时间,和多久删除一次过期的缓存文件。个人建议:一般缓存时间设置为1天(86400)左右,缓存删除时间为1个小时一次。

Accepted filenames, rejected URIs
这里设置一些链接不需要缓存,并且可以设置特例。

Rejected User Agents
这里设置某些 User Agents 来访问的时候不会缓存。比如 Google 和百度爬虫等。

Cache Contents
这里显示你博客缓存文件和过期文件的数量,你可以手工删除缓存文件和过期文件,因为 WP Super Cache 有垃圾回收机制,所以这里不帮不用手工删除,如果当你测试某个插件,看不到效果的时候,如果确定是缓存的原因,你可以到这里手工删除测试下。

Lock Down
一般情况下,某篇日志如果有了新留言,就会更新缓存文件,不过这篇日志是否已经到了缓存时间,但是在某种情况,你预料到你的博客可能会有很大流量和留言,候重复更新缓存文件可能并不是很好的选择,速度反而更慢,这个时候你就可以锁定缓存文件,新留言不再更新缓存日志。

插件作者也给出了一段代码,如果你的博客锁定了之后,可以通过判断一个变量 WPLOCKDOWN 是否存在告来诉读者,你博客已经锁定,待会才会更新,当然了,一般博客不建议使用。

Directly Cached Files
直接缓存文件,根据永久链接直接缓存,比如你的关于页面是不太更新,你就可以直接缓存它到你的 about 目录下(假如你的关于页面的 slug 是 about),这个直接缓存不会过期。适合一些经常性不更新的静态页面。

Configuration messed up?
因为上面那么多配置,你可能搞糊涂了,那么这里可以让你一键恢复到默认。

Cache Plugins
缓存插件还支持附加插件,比如作者自己就提供一个插件:No Adverts for Friends,不对朋友显示广告。