# Redis 入门

如何使用 Redis 启动和运行

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

# 安装 Redis

如何安装 Redis 取决于您的操作系统。请参阅下面最适合您需求的指南:

  • 从源安装 Redis
  • 在 Linux 上安装 Redis
  • 在 macOS 上安装 Redis
  • 在 Windows 上安装 Redis

启动并运行 Redis 并可以使用 连接redis-cli后,您可以继续执行以下步骤。

# 使用 CLI 探索 Redis

外部程序使用 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 127.0.0.1:6379> set mykey somevalue
OK
redis 127.0.0.1:6379> get mykey
"somevalue"

此时,您可以与 Redis 对话。现在是时候暂停一下本教程,开始 15 分钟的 Redis 数据类型介绍,以便学习一些 Redis 命令。否则,如果您已经知道一些基本的 Redis 命令,您可以继续阅读。

# 保护 Redis

默认情况下,Redis 绑定到所有接口,并且根本没有身份验证。如果您在非常受控的环境中使用 Redis,与外部 Internet 以及通常与攻击者隔离,那很好。但是,如果未加固的 Redis 暴露在 Internet 上,则存在很大的安全问题。如果您不能 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 客户端库。您将在此页面中找到针对不同语言的客户的完整列表。

例如,如果您碰巧使用 Ruby 编程语言,我们最好的建议是使用Redis-rb客户端。您可以使用命令gem install redis安装它。

这些指令是特定于 Ruby 的,但实际上许多流行语言的库客户端看起来非常相似:您创建一个 Redis 对象并执行调用方法的命令。一个使用 Ruby 的简短交互式示例:

>> require 'rubygems'
=> false
>> require 'redis'
=> true
>> r = Redis.new
=> #<Redis client v4.5.1 for redis://127.0.0.1:6379/0>
>> r.ping
=> "PONG"
>> r.set('foo','bar')
=> "OK"
>> r.get('foo')
=> "bar"

# Redis 持久化

您可以 在此页面上了解 Redis 持久性的工作原理,但是对于快速入门来说,重要的是要了解默认情况下,如果您使用默认配置启动 Redis,Redis 只会不时自发地保存数据集(例如在如果您的数据至少有 100 处更改,则至少需要五分钟),因此如果您希望数据库在重新启动后保持并重新加载,请确保每次要强制执行数据集快照时手动调用SAVE命令。否则请确保使用SHUTDOWN命令关闭数据库:

$ redis-cli shutdown

这样,Redis 将确保在退出之前将数据保存在磁盘上。强烈建议阅读持久性页面,以便更好地了解 Redis 持久性的工作原理。

# 更正确地安装 Redis

从命令行运行 Redis 只是为了破解一点或用于开发。但是,在某些时候,您将有一些实际的应用程序在真实服务器上运行。对于这种用法,您有两种不同的选择:

  • 使用屏幕运行 Redis。
  • 使用初始化脚本以正确的方式在您的 Linux 机器中安装 Redis,以便在重新启动后一切都将重新正常启动。

强烈建议使用初始化脚本进行正确安装。以下说明可用于在基于 Debian 或 Ubuntu 的发行版中使用 Redis 2.4 或更高版本随附的 init 脚本执行正确安装。

我们假设您已经在 /usr/local/bin 下复制了redis-serverredis-cli可执行文件。

  • 创建一个目录来存储 Redis 配置文件和数据:
  sudo mkdir /etc/redis
  sudo mkdir /var/redis
  • 将您在 Redis 发行版中的utils目录下的 init 脚本复制到/etc/init.d. 我们建议使用运行此 Redis 实例的端口名称来调用它。例如:
  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
    • 目录设置为/var/redis/6379(非常重要的一步!)
  • 最后,使用以下命令将新的 Redis 初始化脚本添加到所有默认运行级别:

  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 实例是否正确记录在日志文件中。
  • 如果它是一台新机器,您可以毫无问题地尝试它,请确保在重新启动后一切仍然正常。

注意:在上面的说明中,我们跳过了许多您想要更改的 Redis 配置参数,例如为了使用 AOF 持久性而不是 RDB 持久性,或者设置复制等等。请务必阅读示例redis.conf文件(有大量注释)和您可以在本网站上找到的其他文档以获取更多信息。

安装 Redis

在 Linux、macOS 和 Windows 上安装 Redis

Redis 常见问题

开始使用 Redis 时的常见问题

# 反馈

如果您在此页面上发现问题,或有改进建议,请提交请求以合并或打开存储库中的问题。

Last Updated: 5/25/2023, 2:35:11 PM