安装Redis
在 Linux、macOS 和 Windows 上安装 Redis
这是安装指南。您将学习如何安装、运行和试验 Redis 服务器进程。
虽然您可以在下面列出的任何平台上安装 Redis,但您也可以考虑通过创建 免费帐户。
安装Redis
如何安装 Redis 取决于您的操作系统以及您是否希望将其与 Redis Stack 和 Redis UI 捆绑在一起安装。请参阅下面最适合您需求的指南:
- 从源代码安装Redis
- 在Linux上安装REDIS
- 在macOS系统上安装Redis
- 在Windows系统上安装Redis
- 使用 Redis Stack 和 RedisInsight 安装 Redis
测试是否可以使用 CLI 连接
一旦 Redis 启动并运行,您就可以使用 redis-cli
进行连接。
外部程序使用 TCP 套接字和 Redis 特定协议与 Redis 进行通信。该协议在不同编程语言的 Redis 客户端库中实现。然而,为了简化使用 Redis 的过程,Redis 提供了一个命令行实用程序,可用于向 Redis 发送命令。该程序称为redis-cli。
为了检查 Redis 是否正常工作,要做的第一件事是使用 redis-cli 发送 PING 命令:
$ redis-cli ping
PONG
运行 redis-cli ,并在后面加上命令名称及其参数,就能将该命令发送到运行在本地主机上、端口为 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,仅仅是为了进行一些 hack 或开发,这没什么问题。不过,在某些时候,你会有一些实际应用需要在真实服务器上运行。在这种情况下,你有两种不同的选择:
- 使用 screen 运行 Redis。
- 使用 init 脚本以正确的方式在 Linux 机器中安装 Redis,以便重新启动后一切都会重新正常启动。
强烈建议使用初始化脚本进行正确安装。
备注支持的 Linux 发行版的可用软件包已包含从
/etc/init
启动 Redis 服务器的功能。
备注本节的其余部分假设您已经从源代码安装了 Redis。如果您已经安装了 Redis Stack,则需要下载基本的启动脚本,然后修改脚本和下面的说明,以符合 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
-
编辑初始化脚本。
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
,根据需要修改端口。 - 相应地更改端口。在我们的示例中,不需要它,因为默认端口已经是
6379
。 - 设置您的首选日志级别。
- 将日志文件设置为
/var/log/redis_6379.log
- 将 dir 设置为
/var/redis/6379
(非常重要的一步!)
-
最后,使用以下命令将新的 Redis 初始化脚本添加到所有默认运行级别:
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 文件,该文件带有大量注释,可帮助指导您进行更改。还可以在此站点上的配置文章中找到更多详细信息。