如何在 Debian 12、11 或 10 上安装 Redis

Redis 是一种开源的内存数据结构存储,广泛用作数据库、缓存和消息代理。它的高性能和灵活性使其成为各个技术领域的热门选择。如果您想在 Debian 12 Bookworm、Debian 11 Bullseye 或 Debian 10 Buster 上安装 Redis,本指南适合您。

Redis 的主要功能

  • 快速数据访问:Redis 将数据存储在内存中,因此可以快速检索。这使其成为缓存应用程序的理想选择。
  • 多种数据结构:与传统的基于表的数据库不同,Redis 支持各种数据结构,如字符串、哈希、列表和集合。
  • 实时消息传递:Redis 提供发布/订阅消息模式,支持实时应用程序通信。
  • 数据持久性:虽然 Redis 主要是一个内存数据库,但它允许定期将数据保存在磁盘上,从而实现速度和耐用性之间的平衡。
  • 可扩展性和可用性:复制、分片和 Redis Sentinel 等功能可确保跨多个节点的高可用性和可扩展性。

Redis 的常见用例

  • 缓存:Redis 通常用于缓存经常访问的数据,从而加快检索时间。
  • 会话存储:它非常适合存储用户会话数据,尤其是在高流量的 Web 应用程序中。
  • 消息队列:发布/订阅功能使 Redis 成为消息队列系统的绝佳选择。

了解 Redis 的功能可以显著增强您的技术堆栈。即将发布的指南将详细介绍如何在 Debian 12 Bookworm、Debian 11 Bullseye 或 Debian 10 Buster 上安装 Redis。我们将介绍两种安装方法:一种使用 Debian 的默认存储库,另一种使用最新版本的官方 Redis 存储库。这两种方法都将使用命令行界面 (CLI) 命令。请继续关注分步说明。

Redis 安装前的准备步骤

更新 Debian 系统软件包

在安装 Redis 或任何其他软件之前,第一步是确保系统的软件包是最新的。这一关键的初步步骤有助于缓解后续安装过程中的潜在冲突。它确保所有系统依赖项都是最新的,从而最大限度地减少因软件包过时而产生的潜在问题。

在 Debian 系统中,您可以通过在终端中运行以下命令来执行此操作:

sudo apt update && sudo apt upgrade

安装Redis所需的软件包

一旦 Debian 系统软件包更新完毕,您将需要安装 Redis 安装所需的特定软件包。

您可以通过运行以下命令来安装这些包:

sudo apt install software-properties-common apt-transport-https curl ca-certificates -y

让我们剖析一下这个命令以便更好地理解它:

  • sudo apt install:此命令用于在您的 Debian 系统上安装软件包。
  • software-properties-common:该软件包提供了用于安全管理软件和源代码的特定脚本。
  • apt-transport-https:此包是 apt 包管理器通过‘https’协议检索包所必需的。
  • curl:这是一个使用各种网络协议传输数据的命令行工具。它有助于下载文件等。
  • ca-certificates:此包是验证网站安全性所必需的。它提供了一组认证机构 (CA) 证书。
  • -y:此选项将在安装过程中自动对所有提示回答“是”。

选择 Redis 安装方法

选项 1:使用 APT Debian 存储库安装 Redis

虽然 Debian 在其默认软件产品中包含 Redis,但版本可能不是最新的。Debian 注重稳定性,通常只提供安全性或重大更新。这可能会使 Debian 上的 Redis 版本较旧,但可以说更稳定。如果您打算使用 Redis 不需要最新的功能,这可能是完美的选择。

要通过此方法安装 Redis,您需要在终端中执行以下命令:

sudo apt install redis

sudo 命令提供超级用户权限,而 apt install redis 将 Redis 软件包安装到您的 Debian 系统上。

选项 2:使用 Redis.io APT 存储库安装 Redis

对于那些需要或希望获得最新版本的 Redis 的用户来说,第二种方法可能更有吸引力。它涉及从官方 Redis.io 存储库导入 APT 存储库。该存储库定期接收错误修复、安全补丁和功能更新。

导入 Redis.io 存储库

首先,导入 GPG 密钥。GPG(即 GNU Privacy Guard)有助于确保通信和数据存储的安全。GPG 密钥可验证数据源并确保下载过程中无人对其进行更改。

使用此命令导入 GPG 密钥:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

接下来,我们使用以下命令导入存储库:

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

导入 Redis.io APT 后更新软件包索引

添加新的存储库后,您需要更新系统的软件包索引以了解新源中可用的软件包。通过运行以下命令执行此操作:

sudo apt-get update

通过 APT 命令安装 Redis

一切设置完成后,您可以从 Redis.io 存储库安装 Redis。如果您已经从 Debian 存储库安装了 Redis,则可能会看到升级。以下命令将安装 Redis 以及 Redis 服务器和工具:

sudo apt install redis redis-server redis-tools

验证 Redis 安装

安装后,最好验证一下安装情况。您可以使用 apt-cache policy 命令,确认你已经安装了Redis.io版本。使用方法如下:

apt-cache policy redis

使用以下命令激活 Redis 实例并将其设置为在系统启动时启动:

sudo systemctl enable redis-server --now

要验证 Redis 是否正常运行,请使用以下命令:

systemctl status redis-server

此命令提供有关 redis-server 服务现在应该正在运行。

检查 Redis:Debian 上的安装后验证

监听端口

默认情况下,Redis 使用端口 6379 监听本地主机。要确保 Redis 确实按预期主动监听,请使用以下命令:

ps -ef | grep redis

此命令显示涉及 Redis 的正在运行的进程,这应该反映 Redis 在端口 6379 上的监听状态。

对 Redis 服务进行 Ping 测试

ping 测试是验证 Redis 服务是否正常运行的最简单方法之一。这将建立与 Redis 服务的连接,验证其是否已启动、正在运行并准备好响应命令。

首先,使用以下命令连接Redis服务:

redis-cli

运行此命令后,你的终端应该显示 127.0.0.1:6379,表示您已连接到本地主机上的 Redis。现在,您可以按如下方式 ping Redis 服务:

ping

退出 Redis 实例

完成验证检查并确认 Redis 正常工作后,输入以下命令退出 Redis 实例:

exit

我们已经在 Debian 系统上成功安装了 Redis,可以使用 Debian APT 存储库或官方 Redis.io APT 存储库。

配置和设置 Redis

Redis 因其灵活性和满足各种需求的能力而脱颖而出。本节将指导您调整 Redis 的缓存和网络访问,并添加密码以提高安全性。

访问 Redis 配置文件

定制 Redis 的旅程从位于以下位置的 Redis 配置文件开始: /etc/redis/redis.conf. 您需要使用文本编辑器打开此文件,例如 nano.

运行以下命令来执行:

sudo nano /etc/redis/redis.conf

指定缓存的最大内存

Redis 的一个用例是缓存数据以提高应用程序性能。要在 Redis 中为此目的指定特定数量的内存,请在配置文件后附加以下几行:

maxmemory 500mb 
maxmemory-policy allkeys-lru

在此场景中,我们为 Redis 分配了 500 MB 内存。您可以根据服务器的规格和应用程序的要求随意调整此数量。

一旦分配的内存达到容量,Redis 将按照最近最少使用 (LRU) 策略删除键。

设置网络访问

默认情况下,Redis 仅监听 localhost 接口。您可以更改此设置以允许 Redis 监听所有接口或特定 IP 地址/子网。

首先,找到配置文件中的第69行。

选项 1:监听所有网络接口

要让 Redis 监听所有网络接口,你可以注释掉 bind 通过添加 # 在开始时:

# bind 127.0.0.1 ::1

选项 2:绑定到特定 IP 地址或子网

要将 Redis 绑定到特定 IP 地址或子网,请替换 bind 与您的首选 IP 或子网一致:

bind 0.0.0.0/0

或者

bind 192.150.5.0/24

将 Redis 绑定到 IP 地址或子网时,强烈建议强制使用密码以增强安全性。

强制密码验证

为了给您的 Redis 实例添加额外的保护层,您可以设置密码进行身份验证。

搜索以以下内容开头的行 # requirepass (大约第 507 行),取消注释,并设置一个强密码:

requirepass YourStrongPasswordHere

代替 YourStrongPasswordHere 使用包含大写和小写字母、数字和特殊符号的强密码。

提交更改并重新启动 Redis

对配置文件进行必要的调整后,按保存更改 Ctrl + O,然后退出 nano 通过按下编辑 Ctrl + X.

最后,重新启动 Redis 服务以生效新设置:

sudo systemctl restart redis

该命令请求系统停止Redis服务并立即重新启动,从而确保Redis在您设置的新配置参数下运行。

为了确保Redis服务已成功重新启动并且正常运行,您可以通过执行以下命令来检查服务的状态:

sudo systemctl status redis

此命令将返回有关 Redis 服务的信息,包括其状态(活动或非活动)、正常运行时间以及您在确认安装时可能已经看到的日志消息。

使用 UFW 为 Redis 配置防火墙

保护 Redis 服务器需要设置强大的防火墙。Redis 默认不包含防火墙。此外,除非您精通 iptables,否则 Debian 不会提供现成的防火墙解决方案。但有一种简单的方法可供使用,即使您是初学者。此方法涉及简单防火墙 (UFW),这是一种用户友好的防火墙工具。

确保已安装 UFW

首先,检查你的 Debian 服务器是否有 UFW。如果没有,请使用以下命令进行安装:

sudo apt install ufw -y

在此命令中, sudo 用于以 root 权限执行命令, apt install 是安装包的命令, ufw 是要安装的包,并且 -y 是一个自动对任何提示回答“是”的选项,从而允许安装继续进行而无需进一步的用户输入。

启用 UFW

安装 UFW 后,必须启用它才能开始运行并保护您的系统。您可以使用以下命令启用 UFW:

sudo ufw enable

此命令告诉 UFW 激活并应用您已设置或将要设置的任何规则。

为 Redis 配置 UFW 规则

现在 UFW 已激活,您可以对其进行配置以保护您的 Redis 服务器。您可能需要根据您的具体情况以及您的 Redis 安装是独立服务器还是集群的一部分来设置不同的防火墙规则。

对于附加网络 IP 服务器实例

如果您有一个想要使用 UFW 保护的独立 Redis 服务器,请使用以下命令:

sudo ufw allow proto tcp from <ip address> to any port 6379

在这里,你替换 <ip address> 替换为要允许连接的服务器的 IP 地址。此命令告诉 UFW 允许从该 IP 地址到端口 6379(Redis 的默认端口)上的任何系统的 TCP 连接。

对于具有多个实例的集群网络

如果您正在使用 Redis 服务器集群,则可以允许来自整个子网的连接。为此,请使用以下命令:

sudo ufw allow proto tcp from <ip address>/24 to any port 6379

在此命令中,替换 <ip address> 替换为要允许连接的子网的 IP 地址。请注意,此命令意味着高度信任此子网上的所有设备,因为它向所有设备开放 Redis 服务器。因此,仅当您确定内部网络是安全的时才使用此命令。

验证UFW配置

配置 UFW 规则后,确认它们按预期工作至关重要。就像您在本指南开头 ping Redis 服务器以确保其正常运行一样,您也可以测试新的防火墙规则。您可以使用 redis-cli 命令:

redis-cli -h  <ip address> ping

再次更换 <ip address> 替换为 Redis 服务器的 IP 地址。如果防火墙规则设置正确,并且 Redis 服务器正常运行,则此命令的输出应为 pong.

在此命令中, redis-cli 是 Redis 的命令行界面, -h 指定主机(你的服务器的 IP 地址),以及 ping 是检查 Redis 服务器连通性的命令。

解释输出

输出 redis-cli 命令将帮助您确认防火墙规则是否按预期工作。

pong

这个输出是一个好兆头。 pong 响应表示 Redis 服务器可以访问并准备好接受命令。它确认您在 UFW 中设置的防火墙规则正常工作,允许服务器按预期进行通信。

其他 Redis 配置示例

如前所述,Redis 是一种灵活的内存数据存储,具有许多功能。它可用于缓存和消息传递。更改其配置文件可让您让 Redis 按照您想要的方式工作。在这里,我们将展示 Redis 的更多配置选项。

设置键值过期策略

要为 Redis 中的键设置默认生存时间 (TTL),请更改配置文件中的 maxmemory-policy 和 maxmemory-samples 设置。使用以下命令打开文件:

sudo nano /etc/redis/redis.conf

寻找 maxmemory-policy 设置并根据您的喜好进行配置。例如,如果您希望建立一个根据最近最少使用 (LRU) 算法使密钥过期的策略,请按如下方式更新配置:

maxmemory-policy volatile-lru

接下来,找到 maxmemory-samples 设置。这将决定 Redis 应审查的样本数量,以做出驱逐决定:

maxmemory-samples 5

启用 TCP Keepalive

激活 TCP keepalive 有助于检测和关闭空闲连接,从而释放宝贵的系统资源。找到 tcp-keepalive 设置在 /etc/redis/redis.conf 文件来启用它:

tcp-keepalive 300

在此示例中,我们将保持连接间隔设置为 300 秒。您应该根据服务器的要求和条件调整此数字。

设置慢速日志监控

慢日志提供了一种有价值的机制来查明性能问题。它们通过记录超过指定持续时间的查询来实现这一点。查找 slowlog-log-slower-thanslowlog-max-len 设置中的 /etc/redis/redis.conf 配置慢日志的文件:

slowlog-log-slower-than 10000
slowlog-max-len 128

上述示例将慢速日志阈值设置为 10,000 微秒(相当于 10 毫秒)。慢速日志将保留最近的 128 条条目。您应该调整这些值以符合您的特定要求和条件。

启用 Redis 事件通知

Redis 可以为特定事件创建通知,提供强大的监控和调试工具。要激活事件通知,请找到 notify-keyspace-events 设置在 /etc/redis/redis.conf 文件:

notify-keyspace-events ExA

在这里,我们将 Redis 配置为发送过期和被驱逐的键的通知。官方 Redis 文档是一个全面的资源,可提供有关事件通知和可用选项的更多信息。

调整 Redis 日志记录级别

为了更好地排除故障和监控 Redis,请更改其日志记录级别。 您可以在 /etc/redis/redis.conf 文件中通过调整 loglevel 设置在以下位置执行此操作:

loglevel notice

我们已将默认日志记录级别设置为“notice”。其他选项包括“debug”、“verbose”、“notice”和“warning”。选择最适合您需求的级别。

sudo systemctl restart redis-server

此命令重新启动 Redis,并且更改将生效。

结束语

我们介绍了如何在 Debian 12、11 或 10 服务器上安装和配置 Redis。其中包括初始安装、防火墙安全配置和其他自定义选项。Redis 有许多配置选项,可让您调整其性能和行为以满足您的需求。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论