安装Redis

评论 0 浏览 0 2023-12-17

在 Linux、macOS 和 Windows 上安装 Redis

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

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

安装Redis

如何安装 Redis 取决于您的操作系统以及您是否希望将其与 Redis Stack 和 Redis UI 捆绑在一起安装。请参阅下面最适合您需求的指南:

测试是否可以使用 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 更加安全:

  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,仅仅是为了进行一些 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-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
    
  • 编辑初始化脚本。

    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

确保一切都按预期工作:

  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 文件,该文件带有大量注释,可帮助指导您进行更改。还可以在此站点上的配置文章中找到更多详细信息。


最后更新2023-12-18
0 个评论