安装 Redis

在 Linux、macOS 和 Windows 上安装 Redis

Redis Open Source

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

虽然您可以在下方列出的任一平台上安装 Redis,但您也可以考虑通过创建免费帐户使用 Redis Cloud。您还可以下载Redis Insight,一个与 Redis 配合使用的免费开发者工具。

安装 Redis Open Source

安装 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 暴露在互联网上,则会带来很大的安全隐患。如果您不确定您的环境是否已得到妥善保护,请检查以下步骤以使 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。
  • 在您的 Linux 机器上使用 init 脚本以正确的方式安装 Redis,以便在重启后一切都能正常启动。

强烈建议使用 init 脚本进行适当安装。

注意
受支持的 Linux 发行版的可用软件包已经包含了从 /etc/init 启动 Redis 服务器的功能。
注意
本节的其余部分假定您已从 Redis 源代码安装了 Redis

以下说明可用于使用 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. redis-cli 会话中使用 PING 命令尝试 ping 您的实例。
  2. 使用 redis-cli save 进行测试保存,并检查 dump 文件是否正确保存到 /var/redis/6379/dump.rdb
  3. 检查您的 Redis 实例是否正在将日志记录到 /var/log/redis_6379.log 文件。
  4. 如果这是一台新机器,您可以在上面毫无问题地尝试,请确保在重启后一切仍然正常工作。
注意
上述说明不包含所有您可以更改的 Redis 配置参数。例如,使用 AOF 持久化代替 RDB 持久化,或设置复制等等。

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


评价此页面
返回顶部 ↑