很多人都会说 WordPress 不够快,这是主要因为没有安装适合的缓存插件,而 WordPress 缓存插件有很多种,很多人有点迷糊,不知道应该安装哪一种。
下面就给大家介绍各种情况下典型缓存插件,然后大家可以根据自己的服务器的特点给自己的 WordPress 选择相应的缓存插件:
对象缓存机制WordPress 默认的缓存机制叫做 WordPress 对象缓存(WordPress Object Cache), 它的主要功能是把数据库查询结果或者复杂运算的结果按照 Key-Value 这样的方式存储到对象里面,然后还支持按照 Group 来划分和避免缓存的内容冲突。
下次进行同样操作的时候,可以直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。WordPress 不同的缓存的方式就是把缓存对象的对象存储到哪里,或者是否将整个页面缓存。
文件缓存在 WordPress 2.5 版本之前 WordPress 可以使用文件缓存,在 wp-config.php 文件添加 define('ENABLE_CACHE','true'); 即可启用,2.5 版本之后,WordPress 取消了文件缓存和 ENABLE_CACHE 这个全局常量。
文件缓存其实把 WordPress 对象缓存的对象存储到文件里,这样就会有一个问题,就是每次访问页面的时候,要读取很多个缓存的文件,如果你服务器的硬盘速度不是很快,这样就会造成你的服务器的 I/O 拥塞问题,所以 WordPress 2.1 默认没有开启文件缓存,2.5 更是直接取消了。
如果你还想继续使用文件缓存,可以安装这个插件:File-based Extension to the WordPress Object Cache,把下载下来的文件上传到 wp-content 目录下,注意不是 plugins 目录下。
内存缓存从 2.5 版本开始,WordPress 建议使用内存缓存,什么是内存缓存,就是把 WordPress 对象缓存的对象保存到内存中去,下一次访问的时候,直接到内存中获取内容。
使用内存缓存就没有文件缓存的大量 I/O 操作的问题,并且 SQL 查询也减少了很多,整个系统都变的快很多,如果做的好的话,甚至可以做到
0SQL
,比如 Autumn Pro 和 Sweet 主题。不过开启内存缓存需要你的服务器支持(一般的虚拟主机都是不支持的),目前内存缓存一般使用 Memcached 或者 Redis。
WPJAM Basic 已经集成 Memcached,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/,这里有安装 Memecached 缓存插件的详细介绍。
内存缓存和文件缓存一样,把一个页面动态内容根据功能分成很多个部分进行缓存,而不是把这个页面当作一个整体缓存了,所以访问一个页面还是需要从内存中读取多个内容,所有就有人开发了 Batcache 插件。
Batcache 在内存中缓存整个页面,这样再次访问 WordPress 页面的时候,则直接从内存中获取这个内存文件即可。这样就减少了程序的运行,再次降低了 CPU 使用率,也进一步加速了速度,但是也可能造成一些功能的问题,因为整个页面缓存了,所以会和下面静态缓存一样的问题。
静态缓存如果服务器没有 ROOT 权限,就不能安装 Memcached 这些服务端服务和 PHP 扩展,那么可以使用 HTML 静态化缓存插件。
这类型的插件把 WordPress 整个页面缓存到一个静态的状态 HTML 页面存到服务器上,下次访问该页面的时候,不需要再次运行 PHP 代码,直接从服务器返回这个 HTML 文件即可,这样就大大降低了 CPU 的占用率。
但是使用 HTML 静态化缓存插件,也有一个不好的地方,比如文章浏览,最新文章,这些动态的内容不会时时更新,虽然我们可以通过 Javascript 等方法解决这个问题,但是对于普通用户来说还是太麻烦了。
静态缓存插件用得最多的是 WordPress Super Cache,它设置非常灵活,可以区分普通浏览用户和注册用户,并且还支持手机浏览等,这里是我对 WP Super Cache 插件的详细介绍。
最新版本的 WP Super Cache 也支持内存缓存了,这样系统同时安装了 Memcached + WP Super Cache,WordPress 首先把默认对象缓存的对象存储到内存中去,并生成静态 HTML 文件,已登陆的用户从内存中获取各个缓存对象,未登录的用户直接访问静态 HTML,这样效率非常高。
总结那么你应该如何缓存你的 WordPress,下面是我总结的经验:
选择性能优秀的 VPS,比如阿里云和腾讯云。只使用必要的插件,WPJAM Basic 集成了很多功能。安装高效率的 WordPress 主题,比如 Autumn Pro 或者 Sweet。如果服务器支持,尽可能使用内存缓存,WPJAM Basic 已经集成 Memcached。对 WordPress 进行优化。