安装 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 更加安全
- 确保 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 次更改,则会在至少五分钟后保存。如果您希望您的数据库持久化并在重启后重新加载,请确保每次要强制生成数据集快照时手动调用 SAVE 命令。或者,您可以在退出前使用 SHUTDOWN 命令将数据保存到磁盘
$ redis-cli shutdown
这样,Redis 会在退出前将数据保存到磁盘。强烈建议阅读持久化页面,以更好地了解 Redis 持久化如何工作。
正确安装 Redis
从命令行运行 Redis 只适合进行一些简单的尝试或用于开发。然而,总有一天您会在实际服务器上运行真正的应用。对于这种用法,您有两种不同的选择
- 使用 screen 运行 Redis。
- 在您的 Linux 机器上使用 init 脚本以正确的方式安装 Redis,以便在重启后一切都能正常启动。
强烈建议使用 init 脚本进行适当安装。
/etc/init
启动 Redis 服务器的功能。以下说明可用于使用 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
确保一切按预期工作
- 在
redis-cli
会话中使用PING
命令尝试 ping 您的实例。 - 使用
redis-cli save
进行测试保存,并检查 dump 文件是否正确保存到/var/redis/6379/dump.rdb
。 - 检查您的 Redis 实例是否正在将日志记录到
/var/log/redis_6379.log
文件。 - 如果这是一台新机器,您可以在上面毫无问题地尝试,请确保在重启后一切仍然正常工作。
您还应该阅读示例 redis.conf 文件,该文件带有大量注释,以帮助指导您进行更改。更多详细信息也可在本站的配置文章中找到。