Redis 是一种无模式的内存键值数据存储,适用于实时应用程序。开发人员可将其用作 NoSQL 数据库、辅助数据层或计算密集型进程的缓存层。
Redis 提供持久存储,可以缓存网站会话状态和其他数据。将 Redis 用作缓存层的应用程序通常会进行一次复杂的数据库查询或 API 调用,然后缓存结果。它可以快速高效地存储和检索对象。因此,对于使用更传统的关系型数据库服务器作为主要内容存储的 WordPress 来说,Redis 是一个绝佳的伴侣。
Redis 命令行界面(CLI)可用于与 WordPress 网站的 Redis 服务器通信。使用 Redis CLI(在命令行中以 redis-cli
的形式调用),你可以以编程方式请求和接收来自 Redis 服务器的响应,监控在 Redis 实例中执行的命令,检查实例的延迟,并实时观察服务器的状态。
本教程将向你展示如何将 Redis 与 WordPress 网站集成,并使用 Redis CLI 从终端执行创建、读取、更新和删除(CRUD)操作。
使用 DevKinsta 将 Redis 连接到 WordPress
为了将 WordPress 网站连接到 Redis 数据库,我们使用了 DevKinsta,这是一个免费的一键式工具包,用于从本地环境快速启动、开发和部署 WordPress 网站。
DevKinsta 可以在本地启动 Docker 化的 WordPress 网站,并提供最新版本的依赖项,包括 Nginx Web 服务器、PHP 和兼容 MySQL 的 MariaDB 数据库。它还支持 WordPress 的 CLI。
DevKinsta 适用于 Windows、Linux 和 macOS。下载 DevKinsta 时,您可以找到更多有关安装的信息。
安装完成后,使用默认主机栈在本地创建并安装一个新的 WordPress 网站。
提醒:最初启动 DevKinsta 时,如果您还没有安装 Docker Desktop,它会提示您将其作为一个依赖项来安装。DevKinsta 使用 Docker Desktop 在容器内创建所有 WordPress 本地环境文件。
DevKinsta 提供三种本地创建 WordPress 网站的选项:使用默认设置的全新网站、使用自定义设置的新网站,以及将托管在 Kinsta 上的现有网站克隆到本地开发环境。
本教程使用第一个选项,使用默认设置和最新版本的 Nginx、PHP、MariaDB 和 WordPress。
完成这些步骤后,您就可以在 DevKinsta 中查看新网站的仪表板了:
创建新 WordPress 网站后的 DevKinsta 面板。
注意网站路径。这是包含本地网站文件和文件夹的目录。WP Admin 仪表盘链接显示在右上角。最后,注意网站主机,即指向新开发网站的 URL。
您可以打开 Docker Desktop,列出作为 DevKinsta 项目依赖项运行的所有容器。为此,请单击左侧边栏顶部的 Containers:
Docker Desktop 的 DevKinsta 容器列表。
现在,您的 WordPress 网站和容器依赖项已经启动并运行,您可以将 Redis 数据库连接到您的网站了:
- 点击 DevKinsta 中的 “WP Admin” 按钮,进入 WordPress 管理面板。
- 点击左侧的 插件 选项卡。
- 点击 安装插件,然后搜索 “Redis Object Cache”。
在 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 服务器。
确认插件已连接并运行:
- 在管理仪表板中导航到 WordPress 插件页面。
- 单击 Redis 对象缓存的设置链接。
- 在 “设置” 页面上,单击 “Enable Object Cache” 按钮。
Redis 对象缓存是可写和可访问的,但需要启用。
启用 Redis 对象缓存后,其设置页面将如下所示:
Redis 对象缓存设置页面显示 Redis 已连接并正在运行。
启动 Redis CLI
Redis CLI 工具( redis-cli
)与 Redis 服务器捆绑在一起。你可以在 Windows、macOS 和 Linux 操作系统上安装 Redis 服务器。
不过,我们已经在 Docker 中运行了 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 缓存中。
Redis CLI CRUD 操作
你可以使用 CLI 工具对 Redis 数据库执行 CRUD 操作。
让我们来获取从之前的 Redis CLI keys *
请求中复制的键值。
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 网站,然后只需点击几下鼠标就能将其部署到生产环境中。
原文地址:https://www.wbolt.com/redis-cli.html