安装 Redis

在 Linux、macOS 和 Windows 上安装 Redis

这是一份安装指南。您将学习如何安装、运行和试验 Redis 服务器进程。

虽然您可以在下面列出的任何平台上安装 Redis,但您也可以考虑通过创建 免费帐户 来使用 Redis Cloud。

安装 Redis

Redis 的安装方式取决于您的操作系统以及您是否希望将其与 Redis Stack 和 Redis UI 捆绑安装。请参阅最符合您需求的以下指南

请参阅 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 更安全

  1. 确保 Redis 用于侦听连接的端口(默认情况下为 6379,如果您在集群模式下运行 Redis,则另外为 16379,对于 Sentinel 则为 26379)已启用防火墙,以便无法从外部世界联系到 Redis。
  2. 使用配置文件,其中设置了 bind 指令,以确保 Redis 仅侦听您正在使用的网络接口。例如,如果您从同一台计算机本地访问 Redis,则仅使用环回接口 (127.0.0.1)。
  3. 使用 requirepass 选项添加额外的安全层,以便要求客户端使用 AUTH 命令进行身份验证。
  4. 如果您的环境需要加密,请使用 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-serverredis-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

确保一切按预期工作

  1. 使用 PING 命令在 redis-cli 会话中尝试 ping 您的实例。
  2. 使用 redis-cli save 执行测试保存,并检查是否已将转储文件正确保存到 /var/redis/6379/dump.rdb
  3. 检查您的 Redis 实例是否正在记录到 /var/log/redis_6379.log 文件。
  4. 如果这是一台新机器,您可以毫无问题地对其进行尝试,请确保在重新启动后一切仍然正常。
注意

上述说明并未包含您可以更改的所有 Redis 配置参数。例如,使用 AOF 持久性而不是 RDB 持久性,或设置复制等等。

您还应该阅读示例 redis.conf 文件,该文件经过大量注释,以帮助您进行更改。您还可以在 本网站的配置文章 中找到更多详细信息。


评价此页面