本文是 WordPress 优化 系列文章的一部分。
WordPress 缓存是提高性能最快的方法。如果您的站点此刻正遭受攻击,请安装 W3 Total Cache、WP Super Cache 或 Cache Enabler。
缓存插件
像 W3 Total Cache、WP Super Cache 和 Cache Enabler 这样的插件可以轻松安装,并将您的 WordPress 文章和页面缓存为静态文件。这些静态文件随后被提供给用户,从而减少服务器的处理负载。对于相对静态的页面,这可以将性能提高数百倍。
当与系统级页面缓存(如 Varnish)结合使用时,效果非常强大。
如果您的文章/页面包含大量动态内容,配置缓存会更加复杂。请搜索“WordPress 缓存插件”以获取更多信息。
浏览器缓存
浏览器缓存可以通过减少每页的请求数量来帮助减少服务器负载。例如,通过为不更改的文件(如图片、CSS、JavaScript 等静态文件)设置正确的文件头,浏览器会将这些文件缓存在访客的计算机上。这种技术允许浏览器检查文件是否已更改,而不是简单地请求它们。结果是您的 Web 服务器可以回答更多的 304 响应(确认文件未更改),而不是 200 响应(需要发送文件)。
请查看 HTTP Cache-Control(特别是 max-age)和 Expires 头,以及 实体标签 以获取更多信息。
对象缓存
WordPress 中的对象缓存是将数据从昂贵且缓慢的检索位置移动到便宜且快速检索位置的行为。对象缓存通常也是持久的,这意味着在一次请求期间缓存的数据在随后的请求中也可用。
除了使数据访问更容易外,缓存的数据应始终可替换和可再生。如果应用程序出现数据库损坏(例如 MySQL、Postgres、Couchbase),该数据库将遭受严重后果(我们希望有一个良好的备份计划)。与应用程序的主数据存储相比,如果缓存损坏,应用程序应继续运行,因为缓存数据应自行再生。不会丢失任何数据,尽管在缓存再生期间可能会出现一些性能问题。
对象缓存的存储引擎可以是多种技术。流行的对象缓存引擎包括 Redis、Memcached、APC 和文件系统。使用的缓存引擎应由应用程序的需求决定。每种都有其优点和缺点。至少,所使用的引擎应使访问数据比重新生成数据更具性能。
服务器缓存
Web 服务器缓存更为复杂,但用于流量非常高的站点。除了本文范围之外,还有各种选项可用。最简单的解决方案是从本地缓存服务器开始,而更复杂和复杂的系统可能会使用多个缓存服务器(也称为反向代理服务器)“在”运行 WordPress 应用程序的 Web 服务器之前。
在服务器上添加像 Opcache 这样的操作码缓存,或在 IIS 上添加 WinCache,将大大提高 PHP 的性能。
Varnish 缓存与 W3TC 等 WordPress 缓存插件一起使用时非常强大。
进一步阅读
- WordPress 核心缓存概念
- 加速您网站的最佳实践 – Expires / Cache-Control Header 和 ETags(由 Yahoo! Developer Network 提供)
- WebSiteOptimization.com:使用服务器缓存控制提高性能