安装 Redis
在 Linux、macOS 和 Windows 上安装 Redis
这是一份安装指南。您将学习如何安装、运行和试验 Redis 服务器进程。
虽然您可以在下面列出的任何平台上安装 Redis,但您也可以考虑通过创建 免费帐户 来使用 Redis Cloud。
安装 Redis
Redis 的安装方式取决于您的操作系统以及您是否希望将其与 Redis Stack 和 Redis UI 捆绑安装。请参阅最符合您需求的以下指南
- 从源代码安装 Redis
- 在 Linux 上安装 Redis
- 在 macOS 上安装 Redis
- 在 Windows 上安装 Redis
- 使用 Redis Stack 和 RedisInsight 安装 Redis
请参阅 Redis 管理 了解详细的设置提示。
测试是否可以使用 CLI 连接
Redis 启动并运行后,可以使用 redis-cli
连接。
外部程序使用 TCP 套接字和特定于 Redis 的协议与 Redis 通信。此协议在不同编程语言的 Redis 客户端库中实现。但是,为了简化使用 Redis 进行黑客攻击,Redis 提供了一个命令行实用程序,可用于向 Redis 发送命令。此程序称为 redis-cli。
检查 Redis 是否正常工作的第一件事是使用 redis-cli 发送 PING 命令
$ redis-cli ping
PONG
运行 redis-cli,后跟命令名称及其参数,将此命令发送到在 localhost 上的端口 6379 上运行的 Redis 实例。您可以更改 redis-cli
使用的主机和端口 - 只需尝试 --help
选项以查看使用信息。
运行 redis-cli
的另一个有趣方法是不带参数:程序将在交互模式下启动。您可以键入不同的命令并查看其回复。
$ redis-cli
redis 127.0.0.1:6379> ping
PONG
保护 Redis
默认情况下,Redis 绑定到 所有接口,并且根本没有身份验证。如果您在受控环境中使用 Redis,与外部互联网和攻击者隔离开来,那就没问题。但是,如果未加固的 Redis 暴露在互联网上,则这是一个重大的安全问题。如果您不 100% 确定您的环境已得到妥善保护,请检查以下步骤以使 Redis 更安全
- 确保 Redis 用于侦听连接的端口(默认情况下为 6379,如果您在集群模式下运行 Redis,则另外为 16379,对于 Sentinel 则为 26379)已启用防火墙,以便无法从外部世界联系到 Redis。
- 使用配置文件,其中设置了
bind
指令,以确保 Redis 仅侦听您正在使用的网络接口。例如,如果您从同一台计算机本地访问 Redis,则仅使用环回接口 (127.0.0.1)。 - 使用
requirepass
选项添加额外的安全层,以便要求客户端使用AUTH
命令进行身份验证。 - 如果您的环境需要加密,请使用 spiped 或其他 SSL 隧道软件对 Redis 服务器和 Redis 客户端之间的流量进行加密。
请注意,在没有任何安全措施的情况下将 Redis 实例暴露在互联网上 很容易被利用,因此请确保您了解上述内容并应用 至少 一层防火墙。防火墙就位后,尝试从外部主机使用 redis-cli
连接以确认无法访问该实例。
从您的应用程序中使用 Redis
当然,仅从命令行界面使用 Redis 是不够的,因为目标是从应用程序中使用它。为此,您需要为您的编程语言下载并安装一个 Redis 客户端库。
Redis 持久性
您可以在 此页面 中了解 Redis 持久性如何工作。重要的是要了解,如果您使用默认配置启动 Redis,Redis 仅会不时自发保存数据集。例如,如果您在数据中有至少 100 处更改,则至少在五分钟后。如果您希望数据库在重新启动后仍然存在并重新加载,请务必在每次希望强制进行数据集快照时手动调用 SAVE 命令。或者,您可以在退出前使用 SHUTDOWN 命令将数据保存到磁盘
$ redis-cli shutdown
这样,Redis 将在退出前将数据保存到磁盘。强烈建议阅读 持久性页面 以更好地了解 Redis 持久性如何工作。
正确安装 Redis
从命令行运行 Redis 仅适用于进行一些破解或开发。但是,在某些时候,您将有一些实际应用程序在真实服务器上运行。对于这种用法,您有两个不同的选择
- 使用 screen 运行 Redis。
- 使用 init 脚本以适当的方式在 Linux 服务器中安装 Redis,以便在重新启动后一切都能正常重新启动。
强烈建议使用 init 脚本进行正确安装。
受支持 Linux 发行版的可用软件包已经包含了从 /etc/init
启动 Redis 服务器的功能。
本节的其余部分假定您已 从源代码安装 Redis。如果您安装了 Redis Stack,则需要下载 基本 init 脚本,然后修改它和以下说明以符合 Redis Stack 在您的平台上安装的方式。例如,在 Ubuntu 20.04 LTS 上,Redis Stack 安装在 /opt/redis-stack
中,而不是 /usr/local
中,因此您需要进行相应的调整。
以下说明可用于使用 Redis 源代码附带的 init 脚本 /path/to/redis-stable/utils/redis_init_script
执行正确安装。
如果您在构建 Redis 源代码后尚未运行 make install
,则需要在继续之前执行此操作。默认情况下,make install
会将 redis-server
和 redis-cli
二进制文件复制到 /usr/local/bin
。
-
创建一个目录来存储您的 Redis 配置文件和数据
sudo mkdir /etc/redis sudo mkdir /var/redis
-
将您在 Redis 发行版中 utils 目录下找到的 init 脚本复制到
/etc/init.d
中。我们建议使用您在此 Redis 实例中运行的端口的名称来调用它。确保生成的文件具有0755
权限。sudo cp utils/redis_init_script /etc/init.d/redis_6379
-
编辑 init 脚本。
sudo vi /etc/init.d/redis_6379
确保将 REDISPORT 变量设置为正在使用的端口。pid 文件路径和配置文件名都取决于端口号。
-
将 Redis 分发版根目录中的模板配置文件复制到
/etc/redis/
,并使用端口号作为名称,例如sudo cp redis.conf /etc/redis/6379.conf
-
在
/var/redis
中创建一个目录,该目录将用作此 Redis 实例的数据目录和工作目录sudo mkdir /var/redis/6379
-
编辑配置文件,确保执行以下更改
- 将 daemonize 设置为 yes(默认设置为 no)。
- 将 pidfile 设置为
/var/run/redis_6379.pid
,根据需要修改端口。 - 相应地更改 port。在我们的示例中,不需要这样做,因为默认端口已经是
6379
。 - 设置首选的 loglevel。
- 将 logfile 设置为
/var/log/redis_6379.log
。 - 将 dir 设置为
/var/redis/6379
(非常重要的步骤!)。
-
最后,使用以下命令将新的 Redis init 脚本添加到所有默认运行级别
sudo update-rc.d redis_6379 defaults
完成了!现在,您可以尝试使用以下命令运行您的实例
sudo /etc/init.d/redis_6379 start
确保一切按预期工作
- 使用
PING
命令在redis-cli
会话中尝试 ping 您的实例。 - 使用
redis-cli save
执行测试保存,并检查是否已将转储文件正确保存到/var/redis/6379/dump.rdb
。 - 检查您的 Redis 实例是否正在记录到
/var/log/redis_6379.log
文件。 - 如果这是一台新机器,您可以毫无问题地对其进行尝试,请确保在重新启动后一切仍然正常。
上述说明并未包含您可以更改的所有 Redis 配置参数。例如,使用 AOF 持久性而不是 RDB 持久性,或设置复制等等。
您还应该阅读示例 redis.conf 文件,该文件经过大量注释,以帮助您进行更改。您还可以在 本网站的配置文章 中找到更多详细信息。