安装 Redis
在 Linux、macOS 和 Windows 上安装 Redis
这是一个安装指南。您将学习如何安装、运行和试验 Redis 服务器进程。
虽然您可以在下面列出的任何平台上安装 Redis,但您也可以考虑使用 Redis 云,方法是创建一个 免费帐户.
安装 Redis
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 暴露在互联网上,这将是一个重大的安全问题。如果您不确定您的环境是否已正确保护,请按照以下步骤操作,以增强 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 个更改,则在至少 5 分钟后。如果您希望您的数据库持久化并在重新启动后重新加载,请确保每次想要强制执行数据集快照时都手动调用 **SAVE** 命令。或者,您可以在使用 **SHUTDOWN** 命令退出之前将数据保存到磁盘上。
$ redis-cli shutdown
这样,Redis 将在退出之前将数据保存到磁盘上。强烈建议您阅读 持久性页面,以更好地了解 Redis 持久性如何运作。
正确安装 Redis
从命令行运行 Redis 很好,只是为了进行一些简单的操作或用于开发。但是,在某些时候,您将有一些实际的应用程序要运行在真实的服务器上。对于这种用途,您有两种选择
- 使用 screen 运行 Redis。
- 使用 init 脚本在 Linux 系统中以正确的方式安装 Redis,这样在重新启动后,所有内容将再次正常启动。
强烈建议使用 init 脚本进行正确的安装。
以下说明可用于使用 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
-
编辑 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
确保一切按预期工作
- 尝试使用
PING
命令在 ` redis-cli` 会话中 ping 您的实例。 - 使用 ` redis-cli save` 进行测试保存,并检查转储文件是否已正确保存到 ` /var/redis/6379/dump.rdb` 中。
- 检查您的 Redis 实例是否正在记录到 ` /var/log/redis_6379.log` 文件中。
- 如果这是一台新的机器,您可以在没有问题的情况下尝试,请确保在重新启动后一切正常。
您还应该阅读示例 redis.conf 文件,该文件带有大量注释,可以帮助您进行更改。您还可以从本网站的 配置文章 中找到更多详细信息。