如何在 WordPress 上设置和配置 Redis 缓存

Rifat WordPress Tutorials Sep 19, 2023

WordPress 充当开源内容管理系统 (CMS),无需精通任何 Web 脚本语言即可促进内容管理。通过简单地添加文本、图像和视频,人们可以构建并随后在互联网上发布网站或博客。 WordPress 的运行基础在于 PHP 和 MySQL 数据库。

在建立由 WordPress 提供支持的网站的过程中,主题和插件的结合是很常见的,以定制内容属性和视觉美感。这有助于通过补充组件(包括 SEO 和分析等第三方扩展)逐步增强网站功能。这些主题和插件的相互依赖性在 MySQL 数据库中找到它们的存储库,该数据库充当网页内容的主机。

相比之下,Redis 构成了一个开源的内存数据结构存储库,准备充当缓存系统。该软件作为后台服务运行,有助于在系统内存中缓存和保留数据。因此,该策略有助于提高服务器响应时间和整体网站速度。

即将发布的指导指南旨在传授在 WordPress 网站或博客中建立和配置 Redis 对象缓存的必要知识。然而,在深入研究设置细节之前,有必要探索一下 WordPress 和 Redis 的操作机制,以及它们共生利用的基本原理。

创建令人惊叹的网站

使用最好的免费页面构建器 Elementor

现在开始

Redis 的工作原理

考虑这样一个场景,其中 Web 应用程序在服务器上运行,利用 MySQL 等数据库来运行。 Web 应用程序需要从该数据库中检索特定记录。此类查询的执行在提供所请求的记录方面伴随着显着的时间延迟。值得注意的是,数据检索的等待时间延长(超过一分钟)可能会导致用户体验不佳。

但值得注意的是,Redis 提供了一种旨在提高此类数据处理操作的速度和效率的解决方案。通过使用 Redis,可以将通过 MySQL 数据库查询处理过的数据存储在专用的 Redis 缓存实例中。这种策略性存储可以直接从服务器内存中检索数据,从而避免了遍历整个路径返回数据库的必要性。

操作机制需要 Web 服务器与 Redis 交互以确定所需数据的可用性。因此,在后续请求镜像先前查询事务的情况下,驻留在对象缓存内的 Redis 对象会进行干预来满足请求,从而无需重新与 MySQL 服务器交互。

在以编排大量 Web 服务器为特征的实例中,典型的是包含众多单元的大型机群,单个 Redis 缓存的集成可以熟练地聚合来自这些 Web 服务器的请求和响应。这种配置有效地消除了每个单独的 Web 服务器在每个操作实例期间走上数据库的整个轨迹的要求。

为什么将 Redis 与 WordPress 集成

在 WordPress 核心安装中启用 Redis 缓存可以加快向客户交付内容的速度。鉴于 WordPress 广泛使用 MySQL 查询查找,在高流量实例期间性能下降变得明显。

在这种情况下,Redis缓存就发挥了关键作用,很好地解决了这种情况。 Redis 作为基于内存的键值对数据库,将所有相应数据保存在内存中,从而提供了专为 WordPress 量身定制的快速服务器端缓存解决方案。

我们将建立一个 Redis 对象缓存,这是一种旨在优化 WordPress 数据库利用率的措施。此 Redis 对象缓存充当从针对 MySQL 服务器的特定查询派生的缓存输出的存储库。因此,当其他用户访问相同的帖子或文章时,对象缓存会立即满足他们的请求,从而无需查询 MySQL 服务器。

因此,通过缓存复杂的查询可以减少对 WordPress MySQL 数据库的重复调用,从而促进为后续类似请求提供缓存结果。此策略避免了与 MySQL 服务器的额外往返,从而提高了服务器响应时间和整体站点速度。

任务的先决条件

为了继续执行本指南中概述的说明,必须拥有托管在远程服务器上的可运行 WordPress 网站。这种必要性背后的基本原理源于这样一个事实:考虑到 WordPress 的服务器端渲染特性,优化个人计算机上本地托管的网站是不可行的。因此,必须在远程服务器上托管 WordPress,这是配置 Redis 缓存以及提高服务器响应时间和整体站点速度的先决条件。最重要的是要注意,对 WordPress 使用的基本理解对于有效地理解本教程的内容是必不可少的。

使用 AWS EC2 服务器安装 WordPress

在本指导指南中,我利用 Amazon Web Services (AWS) 平台建立了 WordPress 安装。下面提供了简洁的程序说明,​​描述了其配置过程。首先,必须确定拥有活跃的 AWS 账户;值得注意的是,免费套餐帐户足以满足本示例的目的。

继续访问 AWS 控制台并导航到 Amazon Elastic Compute Cloud (EC2) 服务,随后启动虚拟实例。然后,在 AWS Marketplace 范围内仔细搜索 WordPress 应用程序。需要强调的是,当前配置仍然符合免费套餐类别的条件。因此,请选择 WordPress 的 Bitnami 打包版本,它在 Apache HTTP Server 架构之上运行。

选择适当的 AWS 实例类型。对于此特定场景,请选择符合免费套餐资格的 t2 微型实例类型。随后,转到“查看启动”按钮,验证后,执行实例启动。

生成新颖的密钥对以在此服务器和本地计算机之间建立安全连接。确保在启动实例之前保留源自此过程的下载密钥对。

在 AWS 初始化并开始实例启动时请保持耐心。要访问已启动的实例,只需单击提供的启动标识符,如下所示。

确认实例的运行状态并成功配置 WordPress 后,分配的 IP 地址将变得显而易见。要访问最近建立的 WordPress 博客,只需在网络浏览器中输入指定的公共 IPv4 地址即可。对于生产环境,直接使用您的域名就足够了。

使用PuTTY访问服务器

首先购买 PuTTY 应用程序,这是一个开源客户端,可促进 Windows 平台上的 Secure Shell (SSH) 和 telnet 功能。获取后,继续将PuTTY 安装到您的计算机上。

成功安装 PuTTY 后,在计算机目录中找到 PuTTYgen 实用程序并启动其启动。此阶段需要将先前生成的密钥对转换为公钥-私钥文件。在 PuTTYgen 界面中,加载指定密钥,启动密钥生成过程,然后保存生成的私钥。

在这些过程之后,启动 PuTTY 应用程序并输入相关服务器主机名或域名。通过界面导航到“会话”部分,并提供关联的 IP 地址或域名(如果需要配置)。

需要在“连接”菜单中进行进一步配置,特别是在“SSH”小节以及随后的“身份验证”下。这里,必须加载最近保存的 SSH 密钥。配置完成后,可以通过选择“打开”选项来建立连接。

连接成功后,会出现终端界面。输入“bitnami”作为登录凭据。值得注意的是,“bitnami”是 WordPress 安装期间指定的默认用户名。如果已实施任何用户名修改,请相应地输入修改后的用户名。该终端界面提供了一个交互式平台,可以引入额外的库和扩展来增强 WordPress 服务器的功能。

添加Redis到根服务器

现在 WordPress 正在同一根服务器上运行,因此必须添加 Redis。在我们刚刚登录的 PuTTY 终端上运行以下命令来完成此操作。

sudo apt install redis

结果,Redis 将安装在该 IP 地址上。您可以使用sudo systemctl restart redis.service重新启动它以允许配置所有内容。让我们执行一下看看 Redis 服务器是否已启动并正常运行。

sudo systemctl status redis

Redis 在我们的服务器上配置正确。您可以观察到,我们还没有通过运行redis-clikeys *命令注册任何Redis 缓存密钥。

现在一切都已设置完毕,我们需要进入 WordPress wp-admin并添加 Redis 插件。因此,您只需输入您的IP地址或域名和wp-admin ,如下所示。

your-ip-address/wp-admin

转到 AWS 上正在运行的实例,右键单击“监控并排除故障”,然后输入 wp-admin 登录信息。系统日志,拜托。要访问 wp-admin,您将收到默认的 Bitnami WordPress 登录信息。您已到达管理仪表板。

将 Redis 添加到 WordPress


在配置 Redis 之前,需要安装并激活Query Monitor 插件

查询监视器插件有助于各个方面的调试,包括数据库查询、PHP 错误、挂钩和操作、块编辑器中的块、排队脚本和样式表、HTTP API 调用等。此外,它还提供了显示由各个插件组织的数据库查询的全面计数的功能。

要启动此过程,请导航到您网站的主页并访问“查询监视器”菜单。

执行此操作后,将启动查询监视器仪表板。

随后,将您的注意力转移到从此特定页面获取的指标。值得注意的是,这是一个相对简单的网页,可以观察到累计有 23 个数据库查询,执行时间仅为 0.0013 毫秒。

完成此初步步骤后,继续引入新插件。作为说明性示例,搜索“Redis”并选择特定的“ Redis Object Cache ”插件。

选择后,继续安装并激活插件。然后进入仪表板菜单中的 Redis 设置部分。此时,启用对象缓存功能就变得势在必行。

按照这些说明,Redis 将使用默认设置进行配置。

确认

在网站优化的背景下,访问网站上的博客(例如默认的“hello world”WordPress 博客)时,该请求的结果将存储在 Redis 数据存储中。

随后,导航到终端并使用命令“ redis-cli ”以及指定的键(表示为 *)启动 Redis 命令行界面 (CLI)。此时,您会发现 Redis 已正确记录新的 WordPress (wp) 密钥。

此配置完成了在 WordPress 环境中用于缓存目的的 Redis 设置。

要见证效果,请继续刷新您最初加载的主页,同时使用查询监视器。

由此产生的观察结果揭示了一个显着的改进:页面现在仅加载三个数据库查询,每个查询都在极其迅速的 0.0003 毫秒内完成。这种优化大大减轻了我们数据库查询处理时间的累积负担。上述查询现在系统地存储在内存中,从而减少了直接调用 MySQL 数据库的频率。这种编排共同有助于增强后端在满足传入请求方面的响应能力。

包起来

如果您管理像 woo-commerce 这样的大型网站,这对于提高您的网站速度至关重要。此外,通过缓存数据库密集型进程,网站将更具弹性。

即使多人下订单,他们仍然使用缓存来检索数据。使用的资源会更少,后端体验会更快。

Redis 仅缓存对象和数据库查询。这意味着您可以继续使用其他缓存插件来缓存您的页面并加速您的网站,例如Cache EnablerWP Cloudflare

Divi WordPress Theme