
Redis 是一种无模式的,适用于实时应用程序。开发人员可将其用作 NoSQL 数据库、辅助数据层或计算密集型进程的缓存层。
Redis 提供持久存储,可以缓存网站会话状态和其他数据。将 Redis 用作缓存层的应用程序通常会进行一次复杂的数据库查询或 调用,然后缓存结果。它可以快速高效地存储和检索对象。因此,对于使用更传统的关系型数据库服务器作为主要内容存储的 WordPress 来说,Redis 是一个绝佳的伴侣。
Redis 命令行界面(CLI)可用于与 WordPress 网站的 Redis 服务器通信。使用 Redis CLI(在命令行中以 redis-cli 的形式调用),你可以以编程方式请求和接收来自 Redis 服务器的响应,监控在 Redis 实例中执行的命令,检查实例的延迟,并实时观察服务器的状态。
本教程将向你展示如何将 Redis 与 WordPress 网站集成,并使用 Redis CLI 从终端执行创建、读取、更新和删除(CRUD)操作。
为了将 WordPress 网站连接到 Redis 数据库,我们使用了 DevKinsta,这是一个免费的一键式工具包,用于从本地环境快速启动、开发和部署 WordPress 网站。
DevKinsta 可以在本地启动 Docker 化的 WordPress 网站,并提供最新版本的依赖项,包括 Nginx Web 服务器、PHP 和兼容 MySQL 的 MariaDB 数据库。它还支持 WordPress 的 CLI。
DevKinsta 适用于 Windows、Linux 和 macOS。 时,您可以找到更多有关安装的信息。
安装完成后,使用默认主机栈在。
提醒:最初启动 DevKinsta 时,如果您还没有安装 ,它会提示您将其作为一个依赖项来安装。DevKinsta 使用 Docker Desktop 在容器内创建所有 WordPress 本地环境文件。
DevKinsta 提供三种本地创建 WordPress 网站的选项:使用默认设置的全新网站、使用自定义设置的新网站,以及将托管在 Kinsta 上的现有网站克隆到本地开发环境。
本教程使用之一个选项,使用默认设置和最新版本的 、PHP、 和 WordPress。
完成这些步骤后,您就可以在 DevKinsta 中查看新网站的仪表板了:

创建新 WordPress 网站后的 DevKinsta 面板。
注意网站路径。这是包含本地网站文件和文件夹的目录。WP Admin 仪表盘链接显示在右上角。最后,注意网站主机,即指向新开发网站的 。
您可以打开 Docker Desktop,列出作为 DevKinsta 项目依赖项运行的所有容器。为此,请单击左侧边栏顶部的 Containers:

Docker Desktop 的 DevKinsta 容器列表。
现在,您的 WordPress 网站和容器依赖项已经启动并运行,您可以将 Redis 数据库连接到您的网站了:

在 WordPress 中搜索 Redis Object Cache 插件。
单击插件旁边的立即安装。然后,单击 “已安装插件” 选项卡,确认插件已激活。

安装 WordPress 插件,包括 Redis Object Cache。
首次激活时,Redis Object Cache 插件会报告无法连接到 Redis 数据库。我们可以通过在 Docker 中创建一个带有 Redis 实例的容器来解决这个问题。
让我们打开终端,创建一个名为 redisnet 的 *** 容器,在其中运行 Redis 镜像:
docker network create -d bridge redisnet
现在,以独立容器的形式在该 *** 容器中构建并运行 Redis 镜像:
docker run -d -p 6379:6379 --name demo_redis --network redisnet redis
启动容器镜像后,在 Docker Desktop 中验证 Redis 镜像是否已启动并运行:

运行 demo_redis 镜像的 Docker 桌面。
请记住,您的 WordPress 网站是在 Docker 容器中自动启动的。您可以确认其容器 *** 名称和 ID:
docker network ls

Docker Desktop 中的 *** 名称和 ID。
上面,devkinsta_network 的 *** ID 的截断版本是 d1fa155f7a4d 。我们稍后将使用它。
提示:Docker 中 *** 和容器的 ID 长度为 64 个字符。一般来说,截断到前 12 个字符的 ID 对于引用来说足够唯一。要查看完整的 ID,请在列出 ID 的命令中使用 -no-trunc 开关。
将 Redis 集群和服务器连接到本地 WordPress 网站的一种 *** 是直接连接 Redis 和 DevKinsta *** 。首先,验证 Redis 的容器 ID。在这里,我们使用 Docker 命令来列出容器,并使用 -l (最新)开关来显示最近创建的容器:
docker ps -l

Docker 的 ps 命令生成的容器信息。
在本例中,截断的容器 ID 显示为 c3ffc630e44c 。
在下面的命令中使用您的容器 ID 代替我们的 ID,将您的 Redis 容器连接到 DevKinsta *** 。
docker network connect devkinsta_network c3ffc630e44c
你应该已经成功地将 Redis 容器映像添加到 devkinsta_network 中正在运行的容器列表中。要验证 Redis 容器的 *** IP 地址,请运行以下命令,将 devkinsta_network ID 替换为在项目中使用 network ls 命令找到的 ID:
docker inspect d1fa155f7a4d

终端显示 docker inspect 命令的部分输出。
在上图中,demo_redis 容器的 IP 地址是 172.172.0.6。在继续连接之前,请在你的项目中记下这个 IP 地址。
导航到本地计算机上 WordPress 网站的根目录,也就是 DevKinsta 中显示的网站路径。用文本编辑器打开 wp-config.php 文件,在自定义配置变量部分添加以下代码:
define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_HOST', '172.172.0.6');
define('WP_REDIS_PORT', '6379');
WP_REDIS_HOST 所使用的 IP 地址,就是你在执行 docker inspect 命令时发现的 demo_redis IP 地址。
这段配置代码添加了 Redis 客户端、主机和端口,这样插件就能在与 DevKinsta 相同的 Docker 容器和 *** 中访问 Redis 服务器。
确认插件已连接并运行:

Redis 对象缓存是可写和可访问的,但需要启用。
启用 Redis 对象缓存后,其设置页面将如下所示:

Redis 对象缓存设置页面显示 Redis 已连接并正在运行。
Redis CLI 工具( redis-cli )与 Redis 服务器捆绑在一起。你可以在 、 和 操作系统上安装 Redis 服务器。
不过,我们已经,因此可以在 demo_redis 容器中启动 CLI 工具。
上面,当我们使用 docker ps 命令时,我们知道了运行 Redis 映像的容器的 ID。我们的 ID 是 c3ffc630e44c 。我们可以使用这个截断的 ID 来定位 demo_redis,并在其中启动一个命令行 shell:
docker exec -it c3ffc630e44c /bin/sh
现在可以调用 redis-cli 工具了:

从 Docker 中的 shell 调用 redis-cli。
你可以 ping 服务器来测试连接:
ping

服务器对 redis-cli 中 ping 的响应。
要使用 Redis 服务器的 IP 地址和端口连接并测试该连接,请运行以下命令(使用 demo_redis 容器的 IP 地址):
redis-cli -h 172.172.0.6 -p 6379 ping

通过 Redis 服务器的 IP 地址和端口向其发送 ping。
你已经成功连接了本地机器和 Docker 容器上的 Redis 服务器。
接下来,使用 redis-cli 及其 keys * 命令来显示数据库中的所有键,以验证你的 WordPress 网站是否在 Redis 缓存中存储了数据:

使用星号通配符搜索检索 Redis 数据库中的所有键。
可以看到,一些 WordPress 数据已经保存到了 Redis 缓存中。
你可以使用 CLI 工具对 Redis 数据库执行 CRUD 操作。
让我们来获取从之前的 Redis CLI keys * 请求中复制的键值。
get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1

Redis 对使用 redis-cli 提出的 “get” 请求的响应。
让我们调用 redis-cli ,使用 set、get 和 del 命令来创建键/值对、查询新键并删除它,从而操作 Redis 数据库的内容:

使用 redis-cli 对 Redis 数据库进行简单的 CRUD 操作。
上图中,尝试检索一个已删除键的值时,返回值为 nil。
在使用 Redis CLI 时,还有更多可用。
Redis CLI 是一种在网站上测试 Redis 命令的简便 *** ,然后再将其推送到实时环境中。它还是监控 Redis 实例活动的好 *** 。
在 Docker 中,Redis 实例将管理数据库所需的工具(包括 redis-cli )捆绑在一个容器中。
与此同时,DevKinsta 的 Docker 化 *** 可以轻松地在本地机器上开发 WordPress 网站,然后只需点击几下鼠标就能将其部署到生产环境中。
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
宝塔面板另外一个特质是,你无需通过Linux命令行来查看服务器各项指标状况,即可以阿里云服务器类似的可视化图表,查看资源使用、负载、CPU占用及内容使用百分比等指标。 默认监控是关闭,有需要的,可以开启,监控数据默认保存30天,可以自行修改,默认监控数据保存在日志,可手动清理该日志。 监控管理,...
想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...
您可能听说过SaaS,您可能听说过PaaS和IaaS,但您听说过函数即服务 (FaaS) 吗? FaaS市场正在快速增长。根据Allied Market Research的数据,2018年市场价值 。预计到2026年,这一数字将增长到240亿美元——这意味着该行业将从2020年到2026年以2...
有时似乎有太多的商业首字母缩写词要记住。随着快速变化的技术进步和云计算的出现,新的类别将不断涌现。XaaS 就是这样一个最新的补充。 该领域的大多数读者都知道、和。但是你听说过XaaS吗? XaaS(一切皆服务)涵盖了一切:现在一切都可以成为服务。 这听起来好像很复杂的样子,但别担心——我...
随着越来越需要以更快的周转时间生产可扩展、安全和灵活的应用程序,Microservices和APIs在软件开发领域无处不在。 客户需求瞬息万变,他们希望软件解决方案能够减轻他们的任务并为他们提供便利。 采用单体架构的传统方法限制了开发人员进行大量创新。由于它们的成分很硬,因此在应用程序中进行...