安装 Redis

在 Linux、macOS 和 Windows 上安装 Redis

Redis 堆栈 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-cliis without arguments:程序将以交互模式启动。您可以键入不同的命令并查看其回复。

$ redis-cli
redis 127.0.0.1:6379> ping
PONG

保护 Redis

默认情况下,Redis 绑定到所有接口,并且根本不进行身份验证。如果您在一个非常受控的环境中使用 Redis,与外部互联网隔离,并且通常与攻击者隔离,那很好。但是,如果未强化的 Redis 暴露在 Internet 上,则是一个很大的安全问题。如果您不能 100% 确定您的环境得到正确保护,请检查以下步骤以使 Redis 更安全:

  1. 确保 Redis 用于侦听连接的端口(默认为 6379,如果您在集群模式下运行 Redis,则为 16379,另外为 16379,对于 Sentinel,则为 26379)已使用防火墙,这样就无法从外部世界联系 Redis。
  2. 使用配置文件,其中bind指令的设置是为了保证 Redis 仅侦听您正在使用的网络接口。例如,如果您从同一台计算机本地访问 Redis,则仅使用环回接口 (127.0.0.1)。
  3. 使用requirepass选项以添加额外的安全层,以便客户端需要使用AUTH命令。
  4. 如果您的环境需要加密,请使用 spiped 或其他 SSL 隧道软件来加密 Redis 服务器和 Redis 客户端之间的流量。

请注意,暴露在 Internet 上而没有任何安全性的 Redis 实例很容易被利用,因此请确保您了解上述内容并至少应用防火墙层。防火墙就位后,尝试连接redis-cli以确认无法访问实例。

从应用程序使用 Redis

当然,仅从命令行界面使用 Redis 是不够的,因为目标是从您的应用程序中使用它。为此,您需要下载并安装适用于您的编程语言的 Redis 客户端库。

您可以在此页面中找到不同语言支持的客户端的完整列表

Redis 持久性

您可以在此页面上了解 Redis 持久性的工作原理。请务必了解,如果您使用默认配置启动 Redis,Redis 只会不时自发地保存数据集。例如,如果数据中至少有 100 项更改,则至少在 5 分钟后。如果您希望数据库在重新启动后保留并重新加载,请确保每次要强制执行数据集快照时都手动调用 SAVE 命令。或者,您也可以在退出之前使用 SHUTDOWN 命令将数据保存在磁盘上:

$ redis-cli shutdown

这样,Redis 会在退出之前将数据保存在磁盘上。强烈建议阅读持久性页面,以更好地了解 Redis 持久性的工作原理。

正确安装 Redis

从命令行运行 Redis 很好,只是为了 hack 一点或用于开发。但是,在某些时候,您将有一些实际的应用程序要在真实服务器上运行。对于这种用法,您有两种不同的选择:

  • 使用 screen 运行 Redis。
  • 使用 init 脚本以适当的方式将 Redis 安装到 Linux 机器中,以便在重新启动后一切都将再次正常启动。

强烈建议使用 init 脚本进行正确安装。

注意:
支持的 Linux 发行版的可用软件包已经包括从 Redis 服务器启动 Redis 服务器的功能/etc/init.
注意:
本节的其余部分假设您已从其源代码安装了 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.

如果您尚未运行make install构建 Redis 源后,您需要先执行此作,然后再继续。默认情况下,make install将复制redis-serverredis-clibinaries 设置为/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,根据需要修改端口。
    • 相应地更改端口。在我们的示例中,它不是必需的,因为默认端口已经6379.
    • 设置首选的 loglevel
    • 日志文件设置为/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命令。
  2. 执行测试保存redis-cli save并检查转储文件是否已正确保存到/var/redis/6379/dump.rdb.
  3. 检查您的 Redis 实例是否正在记录到/var/log/redis_6379.log文件。
  4. 如果这是一台您可以毫无问题地试用的新机器,请确保重新启动后一切仍在工作。
注意:
上述说明不包括您可以更改的所有 Redis 配置参数。例如,使用 AOF 暂留而不是 RDB 暂留,或设置复制,等等。

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


为本页评分
返回顶部 ↑