如何设置和配置WordPress的Redis缓存
WordPress是一个开源的内容管理系统(CMS)。它允许你管理内容,而无需学习如何编写任何网络脚本语言。你可以建立你的网站或博客,并通过简单地添加文本、图片和视频将其发布到互联网上。WordPress是用PHP和MySQL数据库运行的。
在建立一个由WordPress驱动的网站时,你可能会使用主题和插件来定制内容功能和外观。你还可以添加更多的组件来反复增强你的网站,以及第三方扩展,如SEO和分析。这些主题和插件的依赖性存储在MySQL数据库中,你用它来托管你的页面内容。
在另一端,Redis是一个开源的内存数据结构存储,可以作为一个缓存系统使用。它是一个内存缓存软件,作为一个服务在后台运行。这允许你在内存中缓存和存储数据,以实现高性能的数据检索和存储。因此,该策略将提高服务器响应时间以及网站速度。
本指南将教你如何为你的WordPress网站或博客设置和配置Redis对象缓存。但首先,让我们看看这两者是如何工作的,以及为什么我们应该一起使用它们。
WordPress是如何工作的
有一些基础性的核心是WordPress工作所需要的。这些是WordPress的核心文件和目录。在WordPress核心中也有两个基本的文件夹。
-
wp-admin- 目录由WordPress管理页面组成,允许你轻松更新和管理你的网站。此外,它让你可以访问WordPress管理仪表板。这些管理任务包括添加和编辑帖子和页面,管理用户,上传媒体文件,删除内容,管理主题和插件等。 -
wp-content- 它主要包括主题和插件文件。它还包括上传至你的页面的任何媒体和数据。
两个最重要的WordPress文件包括。
-
The
wpconfig.php- 这个文件控制着你的WordPress网站的所有基本设置和配置细节。它包括MySQL数据库连接设置、WordPress盐和键、数据库表前缀、WordPress语言和ABSPATH。以及运行你的WordPress网站所需的其他信息。 -
functions.php- 这个文件是WordPress最重要的操作文件之一。WordPress主题也有一个功能PHP文件,那是你需要编辑的文件,而不是包含在你网站基本目录中的核心文件。
WordPress是建立在一个MySQL数据库之上的。当你第一次安装WordPress时,你需要在你的网站主机上设置这一个数据库。然后,每次你向你的网站添加新的内容时,它都会正确地存储在这个数据库中。因此,每当一个用户访问这个网站时,就会向MySQL数据库服务器发送一个请求,然后从同一服务器上将请求送回给用户,为该用户提供正确的内容。
如果你有一个大型的后端WordPress面板,如一个强大的电子商务引擎,这些操作可能会耗费时间,和资源。
Redis如何工作
假设你有一个在服务器上运行的网络应用程序,使用MySQL这样的数据库。那个网络应用程序需要从这个数据库中检索一些记录。这种查询需要一些时间来返回所要求的记录。而且,如果查询的费用很高,等待该数据超过一分钟的用户可能会有不好的体验。
然而,Redis是为了使这种处理更快、更有效而制造的。有了它,就可以把由MySQL数据库查询处理的数据存储在Redis缓存实例内。这使得数据可以直接从服务器的内存中检索出来。这样,应用程序就不会一直回到数据库中去。
相反,网络服务器可以向Redis检查它是否有它想要的数据。因此,当再次调用并需要相同的查询事务时,Redis对象将从对象缓存中为请求服务,而不是再次点击MySQL服务器。
当你运行一个由数百台网络服务器组成的大规模舰队时,一个Redis缓存甚至可以为所有这些网络服务器汇集请求和答案。这就不需要它们每次都跑到数据库里去。
为什么要在WordPress中设置Redis
在你的WordPress核心安装中启用Redis缓存的好处是可以更快地将内容传递给客户端。WordPress要做很多MySQL查询,当你有很多流量的时候,它就会非常慢。
在这种情况下,Redis缓存起到了至关重要的作用,可以能够完成这个用例。Redis将是一个基于内存的键值对数据库,它将所有的键值数据存储在内存中。因此,它是服务器端(如WordPress)的一个快速缓存解决方案。
我们将设置一个Redis对象缓存,它将优化WordPress数据库的使用。Redis对象可以用来存储发送给MySQL服务器的特定查询的请求输出的缓存。当其他用户访问相同的帖子或相同的文章时,它将从对象缓存中提供请求,而不是打到MySQL服务器上。
因此,通过缓存复杂的查询,消除WordPress MySQL数据库的频繁调用,并为类似的下一个请求提供缓存的输出。这将消除返回MySQL服务器的一次往返,提高服务器的响应时间和网站速度。
前提条件
要遵循本指南,你需要在远程服务器上运行一个WordPress网站。毕竟,我们不能优化一个在你的电脑上运行的网站,因为WordPress是服务器端渲染的。因此,如果你需要配置Redis缓存并优化服务器响应时间和网站速度,你需要将WordPress托管到远程服务器上。
检查这些教程,看看你如何将一个WordPress托管到Cpanel、Cloudways、DigitalOcean云,或你选择的任何远程托管服务。使用WordPress的基本知识将是必不可少的。
用AWS EC2服务器安装WordPress
在本教程中,我已经使用AWS设置了WordPress。下面是关于如何设置的快速步骤。首先,确保你有一个AWS账户。在这个例子中,一个免费级别的账户就可以了。
- 前往AWS控制台,导航EC2并启动实例。然后在AWS市场上,搜索WordPress。同样,这个设置是符合免费级别的。因此,继续并选择由Bitnami打包的WordPress,这是在运行一个apache服务器。

- 选择AWS实例类型。在这种情况下,选择t2 micro,它是免费的。然后点击审查启动,最后启动实例。

- 创建一个新的密钥对。这将使我们能够从本地计算机安全地连接到这个服务器。确保你下载这个你已经创建的密钥对,然后启动实例。

- 等待AWS启动并启动你的实例。要访问实例的启动,点击启动ID,如下图所示。

- 现在你看到实例正在运行,WordPress已经设置好了。而如果你选择实例,你可以看到分配给它的IP地址。现在你可以在浏览器上打开公共IPv4地址,访问新设置的WordPress博客。如果你是在生产上运行,你将直接使用你的域名。

使用PuTTY访问服务器
接下来,你需要下载PuTTY。PuTTY是Windows平台上的一个开源的SSH和telnet客户端。[下载PuTTY]并将其安装在你的电脑上。
一旦PuTTY安装完毕,在你的电脑上搜索PuTTYgen并启动它。在这里,我们需要将之前创建的密钥对转换为一个公钥-私钥文件。然后,在PuTTYgen上,加载密钥,点击生成并保存一个私钥。

打开PuTTY,输入服务器主机名/域名。所以导航到会话,输入你的IP地址或域名(如果你设置了一个)。

导航到Connections 🡪 SSH 🡪 Auth,加载你上面刚刚保存的SSH密钥,点击打开连接

一旦启动终端,输入bitnami作为登录。Bitnami是安装WordPress时设置的默认用户名。如果你已经修改了你的用户名,就在终端中输入这个用户名。我们有一个交互式终端,我们可以用它来向WordPress服务器添加库和扩展。

作为说明,要在终端访问你的服务器,你需要一个允许你从托管服务器上安装和运行扩展的服务器。
将Redis添加到根服务器上
现在我们需要把Redis添加到运行WordPress的同一根服务器上。要做到这一点,在我们刚刚登录的PuTTY终端上运行以下命令。
sudo apt install redis
这将会在这个IP地址上安装Redis。你可以重新启动它,让一切都用sudo systemctl restart redis.service 。让我们通过执行来检查Redis服务器是否已经启动和运行。
sudo systemctl status redis

Redis已经在我们的服务器内设置好了。然而,如果你运行redis-cli 和keys * ,你可以看到我们还没有注册Redis缓存密钥。

现在我们需要前往WordPresswp-admin ,并添加一个Redis插件来一起设置一切。所以你只需输入你的IP地址或域名和wp-admin ,如下图所示。
your-ip-address/wp-admin
要访问wp-admin的登录信息,请前往你在AWS上运行的实例,右键单击🡪监控和故障排除🡪获取系统日志。你会得到你的默认Bitnami WordPress登录信息,以访问wp-admin。而你已经访问了管理仪表板。

将Redis添加到WordPress
在设置Redis之前,我希望你先去安装并激活一个Query Monitor插件。

Query Monitor能够调试数据库查询、PHP错误、钩子和动作、块状编辑器块、排队的脚本和样式表、HTTP API调用,以及其他。此外,它还有助于显示按插件分组的总数据库查询。
进入你的网站主页,点击查询监视器菜单。

这将启动一个查询监控仪表板。

现在看一下从这个页面得出的这些指标。这是一个相当简单的页面,你可以看到它总共加载了23个数据库查询,需要0.0013毫秒来运行。
现在去添加一个新的插件。例如,搜索Redis,选择这个特定的Redis Object Cache插件。

安装并激活这个插件。然后前往Redis设置(在你的仪表板菜单上)。现在你应该启用Object Cache。

这将设置Redis使用默认设置。

验证Redis是否工作
如果你去你的网站,访问一个博客,比方说默认的hello world WordPress博客,这个请求的结果将被保存到Redis。
转到终端,使用redis-cli 和keys * 访问Redis CLI。 现在你可以看到Redis已经注册了一些新的wp键。

这就是了。Redis已经准备好为你的WordPress做一些缓存了。
现在刷新你加载了Query Monitor的主页。

你可以看到该页面现在正在加载,只有3个数据库查询需要0.0003毫秒。我们的总的数据库查询时间现在比原来要轻得多。所有这些查询现在都被保存在内存中,减少了你必须直接对MySQL数据库进行的调用。这使得后端返回请求的速度更快。
结论
如果你正在运行一个广泛的网站,如woo-commerce,这将在使你的网站更快方面起到很大作用。此外,这将缓存数据库密集型任务,使网站更有弹性。
即使你有很多用户下订单,他们也是在从缓存中提取信息。你将使用更少的资源,拥有更快的后端体验。
Redis只缓存数据库查询和对象。这意味着您仍然可以继续使用其他缓存插件,如[Cache Enabler]和[WP Cloudflare]来缓存您的页面,使您的网站更加快速。