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-than
和 slowlog-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 有许多配置选项,可让您调整其性能和行为以满足您的需求。