WordPress 对象缓存:轻松提高网站性能
已发表: 2022-06-09任何人都不喜欢加载缓慢的网站。 如果您的网站加载时间超过 2 秒,人们会立即离开您的网站。
根据 Google 的说法,您的网站应该在两秒或更短的时间内加载。 时间再长,访客就会开始失去兴趣。
当涉及到您的站点性能增强时,WordPress 对象缓存可以为您提供最大帮助。 在您的站点上正确配置对象缓存,您可以使您的站点对访问者响应迅速。
对象缓存涉及存储数据库查询,当在您的 WordPress 站点上启用时,它可以帮助加快 PHP 执行时间、减少数据库负载并更快地向访问者提供内容。
如果您是 WordPress 新用户并且对 WordPress 对象缓存了解不多,则无需担心。 因为今天,在这个博客中,我们将讨论有关对象缓存的所有内容。 因此,请继续阅读以了解更多信息。
缓存如何在 WordPress 中工作

在进入 WordPress 对象缓存之前,让我们快速了解一下缓存在 WordPress 中的工作原理。
当访问者访问您的网站时,基本上会发生以下情况:
- 来自世界任何地方的用户访问您的网站,他们的浏览器会联系您的网络服务器。
- 您的 WordPress 安装会与安装它的数据库联系,以获取您的帖子和其他存储的数据。
- 然后 Web 服务器将这些数据编译成 HTML 页面并将其返回给用户。
- 如果您在站点上启用了缓存,服务器将在您的缓存中创建此请求的副本。
- 当再次发出类似的请求时,将从缓存而不是数据库中提供服务。
这意味着 WordPress 缓存会保存您网站的静态页面以将其显示给访问者,而不会在访问者每次请求任何特定页面或帖子时生成动态内容。
这可以显着提高您的网站性能,尤其是当您同时处理网站上的大量流量时。
什么是 WordPress 对象缓存
有两种主要类型的缓存:客户端缓存和服务器端缓存。
客户端缓存有多种类型,但您可能最熟悉的一种是浏览器缓存。 这是浏览器存储静态网页内容的地方,因此下次有人访问您的网站时,该页面将从他们计算机上的缓存中提取,而不是再次下载。
对象缓存是一种服务器端缓存。 这意味着缓存存储在服务器上,而不是用户的浏览器上。
启用对象缓存后,您的服务器将为缓存中的每个请求创建一个副本。 下次发出类似请求时,首先检查缓存并从那里提供请求,而不是查询数据库。

如果副本不存在,则向数据库发出请求以进行处理和编译。 一旦处理完毕,它就会被发送回浏览器,并在缓存中制作一份副本以备将来使用。
因此,对象缓存可以最大限度地减少服务器查询数据库的次数。 此设置可以减少服务器的负载,尤其是在流量高峰期。
在 WordPress 中解释“WP_Object_Cache”
WordPress 有一个内置的对象缓存,那就是 WP_Object_Cache。 它是一个 WordPress 类,可以自动将数据库中的任何数据存储在 PHP 内存中。 这样,它可以防止对数据库进行重复和不必要的查询。
默认情况下,WordPress 对象缓存是非持久性的,这意味着它只存储单个页面加载的数据。 一旦请求结束,缓存中的对象将被丢弃。
出于这个原因,您可能要考虑使用持久缓存工具。 使用此工具,对象将在多个页面加载时被缓存,从而进一步提高性能。
Redis 和 Memcached 等外部持久对象缓存解决方案使在请求之间持久保存对象缓存成为可能。 这有助于加快数据库查询的交付速度,同时进一步减轻服务器的工作负载。
3 个适用于 WordPress 的最佳持久对象缓存工具
现在有一些流行的 WordPress 对象缓存工具可用。 其中Redis、Memcached、APC用到的工具居多。 那么,让我们一一检查。
1、Redis

Redis 是一种用于 WordPress 站点的开源对象缓存解决方案,可以帮助减少 MySQL 数据库的负载。 如果您要扩大网站规模或增加流量,它可能是您网站的有用工具。
Redis 将数据存储在内存中,而不是磁盘或 SSD。 因此,它提供了高性能。 它提供内置复制。 您可以将数据放置在离用户位置更近的位置以获得最低的延迟。
Redis 适用于许多数据结构,例如字符串、哈希、列表、集合等。 它具有许多强大的功能,包括内置复制、脚本和磁盘持久性。 Redis Sentinel 和 Redis Cluster 分别提供了包括高可用性和自动分区在内的附加功能。
在您的服务器上安装 Redis 后,您可以使用与 Redis 兼容的插件(如 Redis 对象缓存)将其连接到您的站点。
2. 内存缓存

与 Redis 一样,Memcached 也是一个开源的分布式内存缓存系统。 它用于缓存数据库、API 调用和页面渲染。 它有助于通过减少数据库负载来提高应用程序速度。
Memcached 为每个项目分配一个键、过期时间和原始数据。 当用户请求一段内容或数据时,Memcached 会首先在缓存中查找它是否存储在那里。 如果是,它会从那里检索数据并且不需要检查数据库。
如果数据不在缓存中,Memcached 将向调用应用程序返回失败代码。 然后,应用程序负责从其他地方获取数据,并且可以选择将新数据重新提交回 Memcached。 get_option、get_postmeta 等 WordPress 函数使用缓存数据。
您将获得许多可在您的站点上使用的 Memcached 兼容插件。 其中,W3 Total Cache 是一款非常受欢迎的插件。
3.装甲运兵车
APC 或 Alternative PHP Cache 是一个免费的开源 PHP 缓存插件。 通过 APC 缓存,您的 PHP 脚本执行可以通过减少动态 PHP 执行来更有效地运行。
APC 不同于 Redis 或 Memcached,因为它只关注 PHP 缓存。 通过减少动态 PHP 执行,脚本执行可以高效运行。 当浏览器发出页面请求时,服务器将解析您的 PHP 脚本中的代码,然后生成生成的 HTML 代码,该代码将在用户浏览器中显示为页面。
APC 是一个可以加载到 PHP 中的 PECL 模块,但是因为它在服务器级别运行,所以它不能在我们的共享主机服务器上运行。 如果您在 VPS 或专用服务器上并且能够轻松安装 PECL 模块,那么您可以继续在您的站点上安装 APC。
如何在您的 WordPress 站点中启用持久对象缓存

现在我们将向您展示如何使用 Homebrew 在 macOS 上安装 Redis。 Homebrew 是在 macOS 上安装 Redis 的最简单方法。 您可以按照本教程在 Linux 和 Windows 上安装 Redis。

1.先决条件
首先,确保你安装了 Homebrew。 从终端运行:
$ brew --version
如果此命令失败,您需要按照 Homebrew 安装说明进行操作。
2.安装
从终端运行:
brew install redis
这将在您的系统上安装 Redis。
3. 前台启动和停止Redis
要测试您的 Redis 安装,您可以从命令行运行redis-server
可执行文件:
redis-server
如果成功,您将看到 Redis 的启动日志,Redis 将在前台运行。
要停止 Redis,请输入Ctrl-C
。
4.使用Launched启动和停止Redis
作为在前台运行 Redis 的替代方法,您还可以使用launchd
在后台启动进程:
brew services start redis
这将启动 Redis 并在登录时重新启动它。 您可以通过运行以下命令来检查launchd
托管 Redis 的状态:
brew services info redis
如果该服务正在运行,您将看到如下输出:
redis ( homebrew.mxcl.redis ) Running: Loaded: User: miranda PID:
要停止服务,请运行:
brew services stop redis
5.连接到Redis
Redis 运行后,您可以通过运行redis-cli
对其进行测试:
redis-cli
这将打开 Redis REPL。 尝试运行一些命令:
127.0.0.1:6379> lpush demos redis-macOS-demo OK 127.0.0.1:6379> rpop demos "redis-macOS-demo"
6.安装并激活Redis对象缓存插件
连接到 Redis 后,您可以将 Redis 对象缓存插件添加到您的站点。
安装并激活插件后,导航到仪表板中的设置> Redis 。 然后单击“启用对象缓存”按钮以在您的站点上启用对象缓存。

就是这样! 您已在您的网站上成功启用 WordPress 对象缓存。
奖励:Dokan Multivendor 是否与 WordPress 对象缓存兼容

这是 Dokan 用户经常提出的问题之一——Dokan 是否与 WordPress 对象缓存兼容?
是的! Dokan 现在与 WordPress 对象缓存兼容。 如果您使用的是 Dokan 最新版本 Dokan 3.5.0 或以上版本,您可以启用对象缓存并在您的站点上无缝使用 Dokan。
因此,在您的服务器上安装一个 WordPress 对象缓存解决方案,如 Redis 或 Memcached,并使用兼容的插件(如 W3 Total Cache 或 Redis Object Cache)将其连接到您的站点。 然后为您的在线市场使用 Dokan 多供应商插件,并充分利用 WordPress 对象缓存的优势。
Dokan 多供应商插件的早期版本(Dokan 3.5 之前)不支持对象缓存。 但在Dokan 3.5 版本发布后,现在完全兼容WordPress 对象缓存。
WordPress 对象缓存 – 常见问题解答
缓存是指创建内容的静态版本并将其提供给访问者的过程。 静态页面通常在浏览器中快速呈现。 这会提高您网站的性能。
瞬变可以持续一秒或一天,实际上取决于您希望它们存在多长时间。 但是,它不会在到期时间后出现。 这意味着你可以设置一个过期时间,它会一直持续到过期时间。
它通过减少数据库的负载来提高站点性能。 通过在您的网站上启用缓存解决方案,您将能够将网站的静态版本存储在缓存中。 这允许 WordPress 在您的网站每次加载时跳过运行较重的 PHP 脚本。
WordPress 不会自动删除过期的瞬变。 在数月乃至数年的时间里,这些存在于数据库 wp_options 表中的已过期但未删除的瞬变可能会开始减慢速度并阻碍网站性能。 出于这个原因,我们应该删除过期的瞬态以提高 WordPress 网站的性能。
是的,WordPress 有一个名为 WP_Object_Cache 的内置对象缓存。 它于 2005 年推出,提供了一种自动将数据库中的任何数据存储在 PHP 内存中以防止重复查询的方法。
交给你
如果您想提高 WordPress 网站的性能,WordPress 对象缓存至关重要。 它可以减少您的服务器负载,因为它不会在您的网站每次加载时都运行较重的 PHP 脚本。 相反,它会向访问者显示缓存中所请求文件的静态版本。
您可以按照我们的教程在您的站点上设置和配置对象缓存。 此外,您可以在您的在线市场上启用对象缓存并顺利使用 Dokan,因为现在 Dokan 与 WordPress 对象缓存完全兼容。
所以,这就是我们在对象缓存方面的全部内容。 现在轮到你了。 在您的站点上启用对象缓存,如果您在站点上配置缓存时遇到任何问题,请通过下面的评论框告诉我们。 我们很乐意尽早解决您的问题。