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