缓存

本文是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或WinCache这样的操作码缓存到您的服务器将提高 PHP 的性能许多倍。

当与 W3TC 等 WordPress 缓存插件一起使用时,varnish缓存非常强大。

进一步阅读

  • WordPress 中的核心缓存概念
  • 加快网站速度的最佳实践——过期/缓存控制标头和 ETag(来自 Yahoo! Developer Network)
  • WebSiteOptimization.com:使用服务器缓存控制来提高性能

变更日志

  • 2022-09-04: Optimization – Caching的原始内容。