安装 Redis
在Linux、macOS和Windows上安装Redis
这是一个安装指南。您将学习如何安装、运行和试验Redis服务器进程。
虽然您可以在下面列出的任何平台上安装Redis,但您也可以考虑通过创建一个免费账户来使用Redis Cloud。
安装 Redis
如何安装Redis取决于您的操作系统以及您是否希望将其与Redis Stack和Redis UI捆绑安装。请参阅以下最适合您需求的指南:
请参考Redis Administration获取详细的设置提示。
测试是否可以使用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更加安全:
- 确保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,以便在重启后一切都能正确重新启动。
强烈建议使用初始化脚本进行正确安装。
/etc/init
启动Redis服务器的功能。/opt/redis-stack
,而不是/usr/local
,因此您需要相应地调整。以下说明可用于使用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目录下找到的初始化脚本复制到
/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
,根据需要修改端口。 - 相应地更改port。在我们的示例中不需要更改,因为默认端口已经是
6379
。 - 设置您首选的loglevel。
- 将logfile设置为
/var/log/redis_6379.log
。 - 将dir设置为
/var/redis/6379
(非常重要的一步!)。
-
最后,使用以下命令将新的 Redis 初始化脚本添加到所有默认运行级别:
sudo update-rc.d redis_6379 defaults
你已经完成了!现在你可以尝试运行你的实例:
sudo /etc/init.d/redis_6379 start
确保一切按预期工作:
- 尝试在
redis-cli
会话中使用PING
命令对你的实例进行ping操作。 - 使用
redis-cli save
进行测试保存,并检查转储文件是否正确保存到/var/redis/6379/dump.rdb
。 - 检查您的Redis实例是否正在记录到
/var/log/redis_6379.log
文件。 - 如果这是一台新机器,你可以在上面无问题地尝试,确保重启后一切仍然正常工作。
您还应该阅读示例redis.conf文件,该文件有大量注释,以帮助指导您进行更改。更多详细信息也可以在本站的配置文章中找到。