WordPress 缓存插件综述
2009年08月28日
大家可能都有这样的经验,使用 WordPress 一段时间,并且安装了一些的插件之后,博客的反应速度会变慢,甚至很慢,如果服器不够强劲,比如你使用的是 Bluehost 或者 Dreamhost 这样 Oversell 的主机,而非 MT 这样的 VPS,并且流量很大,那么你可能会噩梦相随,你会经常因为 CPU 超标,而被停掉服务。如果你的预算不够不能更换服务器,这个时候我们应该使用 WordPress 缓存插件来降低 WordPress 对服务器的资源占用。
WordPress 缓存插件有很多种,这里不能一一讲解,只能介绍我熟悉的几种给大家做个简单的介绍,你可以根据自己的服务器的特点给自己的 WordPress 博客选择相应的缓存插件:
文件缓存
在 WordPress 2.5 版本之前 WordPress 可以使用文件缓存,需要在 wp-config.php 文件添加 define('ENABLE_CACHE','true'); 即可启用。2.5 版本之后,WordPress 取消了文件缓存和 ENABLE_CACHE 这个全局变量。
但是如果你还想继续使用文件缓存,可以安装这个插件:File-Based Extension to the WordPress Object Cache。把下载下来的文件上传到 wp-content 目录下,注意不是 plugins 目录下。
文件缓存其实把网站的动态内容根据功能分成很多个部分,然后分别存储为文件。这样就会有一个问题,就是每次访问页面的时候,要读取多个缓存的文件,如果你服务器的硬盘速度不是很快,这样就会造成你的服务器的 I/O 问题,所以 WordPress 2.1 默认就禁止文件缓存,2.5 更是取消了。
内存缓存
从 2.5 版本开始,WordPress 建议使用内存缓存,什么是内存缓存,就是把经常被访问的动态内容保存到内存中去,下一次访问的时候,直接到内存中获取内容,这样就没有上面所介绍文件缓存的 I/O 操作,并且 SQL 查询也减少了。
不过内存缓存需要你的服务器支持(一般的虚拟主机都是不支持的),目前支持内存缓存的插件有:
- XCache-Based Caching Extension
- eAccelerator-Based Caching Extension
- Memcached-Based Caching Extension
- APC-Based Caching Extension
选择什么内存缓存插件,需要你根据你自己的服务器的配置,比如你的服务器配置了 Memcached 的 PHP 扩展,你就可以使用 Memecached 的插件。我曾经使用的服务器含有 Memcached 的 PHP 扩展,所以这里有安装 Memecached 缓存插件的介绍。
内存缓存和文件缓存一个相同的地方也是网站的动态内容根据功能分成很多个部分,分别对每个部分缓存,而不是把这个页面当作一个整体缓存了,所以访问一个页面还是需要从内存中读取多个内容,所有就有人开发了 Batcache 插件,Batcache 在内存中缓存整个页面,这样再次访问 WordPress 页面的时候,则直接获从内存中获取这个内存文件即可。这样就减少了程序的运行,再次降低了 CPU 使用率,也进一步加速了速度,特别是对一些流量非常高的日志来说,效果特别好。
HTML 静态缓存
但是绝大部分 blogger 使用的服务器都不支持内存缓存所需的这些 PHP 或者服务器扩展,所以我们需要用到 HTML 静态化缓存插件,这类型的插件可以把 WordPress 页面缓存一个静态的 HTML 页面存到服务器上,下次访问该页面的时候,不需要再次运行 PHP 代码,直接从服务器返回这个 HTML 文件即可,这样就大大降低了 CPU 的占用率,但是使用 HTML 静态化缓存插件,也有一个不好的地方,比如日志流量,最新日志,这些动态的内容不会时时更新,虽然我们可以通过 Javascript 等方法解决这个问题,但是对于普通用户来说还是太麻烦了。这方面插件用的最多的是 WordPress Super Cache 和 cos html cache。
我目前使用 WP Super Cache 来缓存 WordPress,因为 WP Super Cache 设置更加灵活,可以区分普通浏览用户和注册用户,并且还支持手机浏览等。这里是我对 WP Super Cache 插件的详细介绍。
总结
那么你应该如何缓存你的 WordPress,下面是我的原则:
- 只使用必要的插件。
- 对使用插件进行必要的优化。
- 根据你自己博客的实际静态化你的 WordPress。
- 如果服务器支持,尽可能使用内存缓存。
20 条评论 添加你的评论 →

1. wangyh | 2008:06:10 - 22:25:02 | #
Sofa
?!
2. wangyh | 2008:06:10 - 22:26:04 | #
Yes!
!
Sofa in the Sofa!
大家踊跃引用~看最终形态
3. yiyix | 2008:06:10 - 22:43:45 | #
在用cos html cache,生成静态页面,不错
4. 天涯行客 | 2008:06:11 - 11:46:44 | #
* XCache-Based Caching Extension
* eAccelerator-Based Caching Extension
* APC-Based Caching Extension
请问以上三个插件需要什么服务器的PHP扩展?如何知道安装上的插件起了作用?
5. cokar | 2008:06:11 - 21:11:22 | #
最近懒得管道博客了
6. cokar | 2008:06:11 - 21:12:14 | #
最近懒得管我的博客了
7. BlueDrifter | 2008:06:14 - 17:41:41 | #
“那么你应该如果和缓存你的 WordPress,下面是我的原则:”
那是什么意思啊?飞猪?
8. BlueDrifter | 2008:06:14 - 17:42:34 | #
“那么你应该如何缓存你的WordPress”
看明白了
9. Marcher | 2008:06:15 - 15:32:20 | #
好复杂……
10. BlueDrifter | 2008:06:14 - 18:02:48 | #
去看了一下cos html cache插件,最后更新日期是在2007.06.24
不知道对于最新版的wordpress依然支持么?是否会有什么冲突?
11. Quanwai's New World | 2008:06:15 - 21:32:43 | #
(我打了这么多字,不是复制的,所以非ad)依然支持新版本,只是用了要注意一些问题。有问题再来这留言,或者去我那留言。还有一个问题,如果你采用的是/%category%/%postname%/这种形式的永久链接作为日志地址的话,那是很麻烦的,生成静态的文件是不可以这种地址的。最好是http://www.yourwebsite.com/2007/09/16/post-name.html这种形式的永久链接
这样可以不更换永久链接就可以直接全站静态化了。
如果是/%category%/%postname%/这种,你需要更换永久链接形式。然后更换的话又需要做301定向。做301定向,又很多麻烦,比如你是/%postname%/这种最简单的形式,他要是重定向到/%postname%.html。那么单独的页面比如links页面就被定向到/links.html。所以静态化前还要做好一切准备。还有失效的内建搜索等,如果有麻烦可以找我,或者这留言。去我博客就点我名字吧。
12. Quanwai's New World | 2008:06:15 - 21:24:14 | #
cos-html-cache 将会大大地提高你wordpress的运行效率和载入速度。
但是使用该插件后会难免出现一系列的问题:
比如内建的搜索失效等,需要注意的。对一般的博客,选取的服务器可能都不是很强劲那种,所以,如果追求速度,还是静态化吧。
13. Quanwai's New World | 2008:06:15 - 21:36:19 | #
还有想问下和我爱水煮鱼交换链接需要什么条件?新博,pr3。经常更新可以不?其他交换链接的也可以找我哈。谢谢贵宝地让我发一条非ad的ad。
14. Denis | 2008:06:18 - 16:29:13 | #
我不交换链接,不好意思。
15. jacken | 2008:06:18 - 22:58:36 | #
不错 , 不知道装完会不会有问题.
我的链接结尾是.yy的 不知道能不能装
看看 http://www.jacken.com.cn
16. 表妹 | 2008:11:10 - 01:45:34 | #
cos html cache的分页无法静态花,是.html/2的状态,trackback也是.html/trackback,都出现404,不知博主有没有很好的解决的方法?本想用.htaccess转向,奈何技术有限,唉……
17. 小王 | 2009:05:10 - 23:21:45 | #
看样子都挺复杂的,不太好弄啊。
18. Sam | 2009:08:28 - 17:39:55 | #
我觉得wp super cache不错
19. feicun | 2009:09:01 - 13:39:35 | #
本来在用WP Super Cache的,后来给卸了,因为当时没感觉速度有什么太明显的提高,不过看了丹尼斯的文章就又想试试了
20. 摩凝(M.Chan) | 2009:09:22 - 09:45:51 | #
我一直以来都有“1 Blog Cacher”,感觉还不错的,启用以后速度有明显的增加,不过有少量插件会失效。