安装 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-cli
is without arguments:程序将以交互模式启动。您可以键入不同的命令并查看其回复。
$ redis-cli
redis 127.0.0.1:6379> ping
PONG
保护 Redis
默认情况下,Redis 绑定到所有接口,并且根本不进行身份验证。如果您在一个非常受控的环境中使用 Redis,与外部互联网隔离,并且通常与攻击者隔离,那很好。但是,如果未强化的 Redis 暴露在 Internet 上,则是一个很大的安全问题。如果您不能 100% 确定您的环境得到正确保护,请检查以下步骤以使 Redis 更安全:
- 确保 Redis 用于侦听连接的端口(默认为 6379,如果您在集群模式下运行 Redis,则为 16379,另外为 16379,对于 Sentinel,则为 26379)已使用防火墙,这样就无法从外部世界联系 Redis。
- 使用配置文件,其中
bind
指令的设置是为了保证 Redis 仅侦听您正在使用的网络接口。例如,如果您从同一台计算机本地访问 Redis,则仅使用环回接口 (127.0.0.1)。 - 使用
requirepass
选项以添加额外的安全层,以便客户端需要使用AUTH
命令。 - 如果您的环境需要加密,请使用 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 脚本进行正确安装。
/etc/init
./opt/redis-stack
不/usr/local
,因此您需要进行相应的调整。以下说明可用于使用 Redis 源代码附带的 init 脚本执行正确的安装。/path/to/redis-stable/utils/redis_init_script
.
如果您尚未运行make install
构建 Redis 源后,您需要先执行此作,然后再继续。默认情况下,make install
将复制redis-server
和redis-cli
binaries 设置为/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
确保一切按预期工作:
- 尝试在
redis-cli
会话使用PING
命令。 - 执行测试保存
redis-cli save
并检查转储文件是否已正确保存到/var/redis/6379/dump.rdb
. - 检查您的 Redis 实例是否正在记录到
/var/log/redis_6379.log
文件。 - 如果这是一台您可以毫无问题地试用的新机器,请确保重新启动后一切仍在工作。
您还应该阅读示例 redis.conf 文件,该文件带有大量注释,以帮助指导您进行更改。更多详细信息也可以在此站点上的配置文章中找到。