如何在 Linux 上安装和配置 Redis:完整分步指南
Redis 是一个功能强大的开源内存数据结构存储,广泛用作数据库、缓存和消息代理。Redis 因其卓越的性能和多功能性而享誉盛名,是希望通过缓存频繁请求的数据、管理会话和处理实时分析来大幅加快应用程序速度的开发人员的首选解决方案。无论您是在 VPS Hosting 计划上运行高流量网络应用程序,还是管理专用基础设施,本综合指南都会引导您完成在 Linux 系统上安装、配置和保护 Redis 的每一步。
什么是 Redis 以及为什么应该使用它?
在深入安装过程之前,值得了解是什么使 Redis 如此受欢迎:
- 内存存储:Redis 将数据存储在 RAM 中,使读写操作极其快速 — 通常在一毫秒以内完成。
- 多功能数据结构:支持字符串、哈希、列表、集合、有序集合、位图等。
- 持久化选项:尽管是内存型,Redis 可以将数据持久化到磁盘以在重启后存活。
- Pub/Sub 消息传递:Redis 支持发布/订阅消息传递模式,用于服务之间的实时通信。
- 广泛的语言支持:官方客户端库存在于 Python、PHP、Node.js、Java、Ruby、Go 等许多语言中。
Redis 在应用程序性能至关重要的环境中特别有价值 — 例如,当您的后端托管在 Dedicated Server 上每天处理数百万个请求时。
前置条件
开始之前,请确保您拥有:
- 运行 Ubuntu/Debian 或 CentOS/RHEL 的 Linux 服务器
- 服务器的 Root 或 sudo 访问权限
- 对 Linux 命令行的基本了解
- 用于下载软件包的活跃互联网连接
第1步:更新您的系统
始终从更新系统的软件包索引和将已安装的软件包升级到最新版本开始。这确保了兼容性和安全性:
sudo apt update && sudo apt upgrade -y对于 CentOS/RHEL 系统:
sudo yum update -y保持服务器最新是一项基本的安全实践,特别是在生产环境中。
第 2 步:安装 Redis
大多数主要 Linux 发行版在其官方软件包存储库中包含 Redis,使安装变得简单直接。
在 Ubuntu / Debian 上
sudo apt install redis-server -y在 CentOS / RHEL 上
CentOS/RHEL 系统需要先启用 EPEL(Enterprise Linux 额外软件包)存储库:
sudo yum install epel-release -y
sudo yum install redis -y> 注意:在较新版本的 CentOS/RHEL (8+) 上,您可以使用 dnf 代替 yum:
> “`bash
> sudo dnf install redis -y
> “`

第 3 步:验证安装
安装完成后,通过检查其版本来确认 Redis 已正确安装:
redis-server --version预期输出(示例):
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...如果您看到版本号,则 Redis 已成功安装在您的系统上。


第 4 步:启动并启用 Redis 服务
安装后,您需要启动 Redis 服务并将其配置为在系统启动时自动启动。
在 Ubuntu / Debian 上
sudo systemctl start redis
sudo systemctl enable redis在 CentOS / RHEL 上
sudo systemctl start redis
sudo systemctl enable redis验证 Redis 是否正在运行
sudo systemctl status redis预期输出:
● redis.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis.service; enabled)
Active: active (running) since ...绿色的 active (running) 状态确认 Redis 正在正确运行。
第5步:配置Redis
Redis的行为由其主配置文件控制:
- Ubuntu/Debian:
/etc/redis/redis.conf - CentOS/RHEL:
/etc/redis.conf
使用文本编辑器打开配置文件:
sudo nano /etc/redis/redis.conf以下是您应该查看和调整的最重要的配置选项。
5.1 设置密码(身份验证)
默认情况下,Redis不需要身份验证。对于任何生产环境,设置强密码至关重要:
找到包含 # requirepass 的行并更新它:
requirepass your_strong_password_here选择一个长的、随机生成的密码。Redis速度极快,这意味着暴力破解攻击可以在没有速率限制的情况下每秒尝试数十万次猜测。
5.2 绑定IP地址
默认情况下,Redis仅绑定到 127.0.0.1(本地主机),这可以防止外部访问。这是最安全的默认设置。
如果您的应用程序需要从另一台服务器连接到Redis,您可以绑定到其他IP地址:
bind 127.0.0.1 192.168.1.100> 安全警告:在公网服务器上,不要在没有适当防火墙规则的情况下将Redis绑定到 0.0.0.0(所有接口)。暴露的Redis实例是常见的攻击向量。
5.3 更改默认端口
Redis默认监听端口 6379。更改此端口增加了一层隐蔽性:
port 6380如果您更改端口,请记住更新防火墙规则和应用程序连接字符串。
5.4 应用配置更改
编辑 redis.conf 后,重启Redis服务以应用所有更改:
sudo systemctl restart redis第 6 步:测试 Redis 安装
使用内置的 Redis CLI(命令行界面)验证 Redis 是否正常工作:
redis-cli如果您设置了密码,请先进行身份验证:
AUTH your_strong_password_here运行 Ping 测试
ping预期响应:
PONG设置和检索键值对
SET mykey "Hello, Redis!"
GET mykey预期响应:
"Hello, Redis!"如果 Redis 正确返回存储的值,说明您的安装已完全正常运行,数据库正在按预期存储和检索数据。
退出 CLI
exit第 7 步:将 Redis 配置为后台守护进程(可选)
如果您想让 Redis 作为后台守护进程运行(而不是前台进程),请在 redis.conf 中配置 daemonize 选项:
daemonize yes保存文件后,重启 Redis:
sudo systemctl restart redis验证该服务是否在后台运行:
sudo systemctl status redis您也可以使用以下命令确认 Redis 进程是否处于活动状态:
ps aux | grep redis第8步:启用Redis持久化(可选但推荐)
默认情况下,Redis仅将数据存储在内存中,这意味着如果服务器重启,数据将丢失。Redis提供两种持久化机制来解决此问题:
选项1:RDB(Redis数据库备份)— 快照
RDB在指定的时间间隔内创建数据集的时间点快照。在redis.conf中配置它:
# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1
# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10
# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000RDB对备份和灾难恢复很有效,但可能会丢失快照之间写入的数据。
选项2:AOF(仅追加文件)— 写入日志
AOF将每个写入操作记录到文件中,提供更强的持久化保证:
appendonly yes您还可以配置AOF同步策略:
# Options: always, everysec, no
appendfsync everysecalways— 最安全,但最慢(每次写入后同步)everysec— 性能和安全性的良好平衡(每秒同步一次)no— 最快,但依赖操作系统的刷新计划
> 最佳实践:对于生产环境,同时使用RDB和AOF以获得最大的数据持久化。
第9步:保护Redis — 最佳实践
安全性对任何Redis部署都至关重要。遵循这些最佳实践来加强您的Redis实例:
1. 启用密码身份验证
如第5.1步所述,始终在redis.conf中设置强requirepass值。
2. 限制网络访问
- 将Redis绑定到
127.0.0.1,除非明确需要远程访问。 - 为服务器间Redis通信使用私有网络或VPN。
3. 配置防火墙规则
仅允许来自受信任IP地址的Redis流量。在Ubuntu上使用ufw:
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379在CentOS/RHEL上使用firewalld:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload4. 重命名或禁用危险命令
Redis具有强大的管理命令(如FLUSHALL、CONFIG、DEBUG),可能被利用。在redis.conf中重命名或禁用它们:
rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""5. 以非root用户身份运行Redis
大多数发行版上的Redis软件包已经创建了专用的redis系统用户。确保Redis永远不以root身份运行。
6. 保持Redis更新
定期更新Redis以修补已知漏洞:
sudo apt update && sudo apt upgrade redis-server -y第10步:将Redis集成到您的应用程序中
安装并保护Redis后,您现在可以将其集成到应用程序堆栈中。以下是流行语言集成的快速概述:
Python — redis-py
pip install redisimport redis
r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))PHP — phpredis 扩展
sudo apt install php-redis -y<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>Node.js — ioredis
npm install ioredisconst Redis = require('ioredis');
const redis = new Redis({ host: '127.0.0.1', port: 6379, password: 'your_password' });
redis.set('greeting', 'Hello from Node.js!');
redis.get('greeting').then(value => console.log(value));Redis与几乎所有现代Web框架和CMS无缝集成,包括WordPress、Laravel、Django和Express.js——使其成为任何开发人员堆栈中的宝贵工具。
Redis 常见用例
了解 Redis 的优势所在,可以帮助您充分利用您的部署:
| 用例 | 描述 |
|---|---|
| 会话存储 | 在 Redis 中存储用户会话,以便在多个应用服务器之间快速、可扩展地访问 |
| 数据库缓存 | 缓存昂贵的 SQL 查询结果以减少数据库负载 |
| 速率限制 | 使用 Redis 计数器跟踪每个用户/IP 的 API 请求数 |
| 实时排行榜 | 使用有序集合维护实时排名 |
| 消息队列 | 使用 Redis 列表或 Pub/Sub 实现轻量级任务队列 |
| 全文搜索 | 使用 RediSearch 模块进行快速搜索索引 |
Redis 常见问题故障排除
Redis 启动失败
检查日志中的错误:
sudo journalctl -u redis -n 50常见原因包括端口冲突、不正确的 redis.conf 语法或内存不足。
连接被拒绝错误
验证 Redis 正在监听预期的地址和端口:
ss -tlnp | grep redis身份验证错误
如果您收到 NOAUTH Authentication required,请确保在客户端连接字符串中或通过 CLI 中的 AUTH 传递正确的密码。
内存使用率高
在 redis.conf 中配置内存限制,以防止 Redis 消耗所有可用 RAM:
maxmemory 256mb
maxmemory-policy allkeys-lruallkeys-lru 策略在达到内存限制时驱逐最近最少使用的键 — 非常适合缓存用例。
托管 Redis:选择正确的基础设施
您的 Redis 实例的性能与底层服务器基础设施的质量直接相关。对于生产工作负载,请考虑:
- VPS 托管 — 小型到中型应用程序的绝佳起点。AlexHost VPS 计划提供 SSD 存储、专用 RAM 和完全的 root 访问权限,以便根据需要配置 Redis。
- 专用服务器 — 对于需要最大 Redis 性能的高流量应用程序,专用服务器提供独占硬件资源,没有邻居干扰的影响。
- 带有 cPanel 的 VPS — 如果您更喜欢与 Redis 部署一起使用图形管理界面,cPanel VPS 可以简化服务器管理,同时仍然通过 SSH 为您提供完全的 Redis 控制。
对于还需要快速、可靠托管和 SSL 支持的 Web 应用程序,将您的 Redis 设置与 SSL 证书配对可确保您的整个堆栈从端到端都是安全的。
结论
在 Linux 上安装和配置 Redis 是一个简单的过程,可以为您的应用程序带来显著的性能改进。按照本指南,您已经:
- ✅ 在 Ubuntu/Debian 或 CentOS/RHEL 上安装了 Redis
- ✅ 启动并启用 Redis 作为系统服务
- ✅ 配置了身份验证、网络绑定和端口设置
- ✅ 启用了持久化以保护您的数据
- ✅ 应用了安全加固最佳实践
- ✅ 将 Redis 与 Python、PHP 和 Node.js 应用程序集成
Redis 的速度、灵活性和丰富功能集的组合使其成为任何开发人员或系统管理员工具包中最有价值的工具之一。通过合适的服务器基础设施——例如来自 AlexHost 的高性能 VPS 或 专用服务器——您的 Redis 部署将准备好处理最苛刻的生产工作负载。
