3. Redis 安装与配置:Linux/Windows 安装、核心配置、启动与关闭、客户端连接
本章聚焦 Redis 在生产环境与开发环境中的安装部署、核心配置项解析、服务生命周期管理以及客户端连接验证。掌握这些基础操作是后续实现缓存读写分离架构的前提。
3.1 环境准备与版本选择
Redis 官方主要支持 Linux 和 macOS 系统,Windows 版本由 Microsoft 开源团队维护(非官方主线)。生产环境强烈建议使用 Linux 部署。
| 维度 | Linux 部署(推荐) | Windows 部署(开发/测试) |
|---|---|---|
| 官方支持 | 完全支持,主线版本 | 社区维护,版本滞后 |
| 性能 | 原生高性能,epoll/kqueue | 基于 IOCP,性能略低 |
| 生产可用性 | 高,广泛用于生产 | 不推荐生产使用 |
| 安装方式 | 源码编译 / 包管理器 | MSI 安装包 / WSL |
版本选择建议: 生产环境使用最新的稳定版(如 7.2.x 或 7.4.x),避免使用 RC 或 alpha 版本。Windows 开发环境建议通过 WSL2 运行 Linux 版 Redis,以获得更一致的体验。
3.2 Linux 安装 Redis
3.2.1 源码编译安装(通用方法)
# 1. 安装编译依赖
sudo apt-get update
sudo apt-get install -y gcc make libsystemd-dev
# 2. 下载并解压
wget https://download.redis.io/releases/redis-7.4.1.tar.gz
tar xzf redis-7.4.1.tar.gz
cd redis-7.4.1
# 3. 编译(使用 systemd 支持)
make BUILD_TLS=yes USE_SYSTEMD=yes
# 4. 安装到 /usr/local/bin
sudo make install
# 5. 创建配置和数据目录
sudo mkdir -p /etc/redis /var/lib/redis /var/log/redis
sudo cp redis.conf /etc/redis/
3.2.2 包管理器安装(快速部署)
# Ubuntu / Debian
sudo apt-get install -y redis-server
# CentOS / RHEL 8+
sudo dnf install -y redis
# 查看安装版本
redis-server --version
注意: 包管理器安装的 Redis 版本可能较旧。生产环境建议使用官方源码编译或 Redis Stack 以获得最新特性和安全补丁。
3.3 Windows 安装 Redis
3.3.1 使用 WSL2(推荐)
# 在 PowerShell 中执行
wsl --install -d Ubuntu
# 进入 WSL 后,按 Linux 方式安装
sudo apt update
sudo apt install -y redis-server
# 启动 Redis
sudo service redis-server start
3.3.2 使用 MSI 安装包
- 访问 Microsoft Archive Redis Releases 下载最新 MSI。
- 双击安装,默认安装为 Windows 服务。
- 安装后可通过
services.msc管理 Redis 服务。
Windows 路径说明: 默认安装路径为
C:\Program Files\Redis,配置文件为 redis.windows.conf,数据目录为 C:\ProgramData\Redis。
3.4 redis.conf 核心配置解析
redis.conf 是 Redis 的行为中枢。以下为生产环境最关键的配置项分类说明。
| 配置分类 | 配置项 | 默认值 | 生产建议 |
|---|---|---|---|
| 网络 | bind | 127.0.0.1 -::1 | 内网 IP 或 0.0.0.0(需配合防火墙) |
| 网络 | port | 6379 | 默认即可,或改为非标准端口 |
| 网络 | protected-mode | yes | 生产保持 yes,配合 bind 使用 |
| 安全 | requirepass | (空) | 必须设置强密码 |
| 持久化 | save | 900 1 300 10 60 10000 | 按业务调整 RDB 快照频率 |
| 持久化 | appendonly | no | 生产建议 yes(AOF 持久化) |
| 内存 | maxmemory | 0(无限制) | 设置为物理内存的 60%-80% |
| 内存 | maxmemory-policy | noeviction | 建议 allkeys-lru 或 volatile-lru |
| 日志 | loglevel | notice | 生产 notice,调试可改为 verbose |
| 日志 | logfile | (空,stdout) | 指定文件路径,如 /var/log/redis/redis.log |
3.4.1 最小化生产配置示例
# /etc/redis/redis.conf
bind 192.168.1.100
port 6379
protected-mode yes
daemonize yes
requirepass YourStrongPassword123!
maxmemory 4gb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
save 900 1
save 300 10
save 60 10000
logfile /var/log/redis/redis.log
dir /var/lib/redis
配置检查清单:
- ✅ bind 绑定内网 IP,不暴露公网
- ✅ requirepass 设置强密码(至少 16 位,含特殊字符)
- ✅ maxmemory 设置上限,防止 OOM
- ✅ appendonly yes 开启 AOF 持久化
- ✅ logfile 指定日志路径,便于排查
3.5 启动与关闭 Redis
3.5.1 启动方式
| 启动方式 | 命令 | 适用场景 |
|---|---|---|
| 前台启动 | redis-server /etc/redis/redis.conf |
调试、查看启动日志 |
| 后台启动 | redis-server /etc/redis/redis.conf --daemonize yes |
生产环境(或配置文件中设置) |
| systemd 管理 | sudo systemctl start redis |
Linux 生产环境推荐 |
| Docker 启动 | docker run -d --name redis -p 6379:6379 redis:7.4 |
容器化部署 |
3.5.2 关闭方式
# 方式一:使用 redis-cli 安全关闭(推荐)
redis-cli -a YourPassword SHUTDOWN
# 方式二:使用 systemd
sudo systemctl stop redis
# 方式三:强制 kill(不推荐,可能导致数据丢失)
sudo kill -9 $(cat /var/run/redis_6379.pid)
SHUTDOWN 命令说明: 执行 SHUTDOWN 时,Redis 会先执行持久化(RDB 快照 + AOF 刷盘),然后正常退出。使用 kill -9 会跳过持久化,可能导致数据丢失。
3.6 客户端连接验证
3.6.1 redis-cli 命令行连接
# 连接本地 Redis
redis-cli
# 连接远程 Redis(指定 IP 和端口)
redis-cli -h 192.168.1.100 -p 6379
# 带密码连接
redis-cli -h 192.168.1.100 -p 6379 -a YourPassword
# 连接后测试
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SET key "Hello Redis"
OK
127.0.0.1:6379> GET key
"Hello Redis"
3.6.2 连接状态验证
# 查看连接信息
redis-cli CLIENT LIST
# 查看 Redis 运行状态
redis-cli INFO server
# 测试延迟
redis-cli --latency -h 192.168.1.100 -p 6379
连接排障三步法:
- 检查
bind配置是否允许客户端 IP 访问 - 检查防火墙是否放行 6379 端口
- 检查
protected-mode是否阻止了非回环地址连接
3.7 安装与连接架构总览
下图展示了从安装部署到客户端连接的完整链路,帮助理解各组件之间的关系。
3.8 常见安装与连接问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| redis-server 命令找不到 | 未安装或未加入 PATH | 执行 sudo make install 或手动添加软链接 |
| 连接被拒绝 (Connection refused) | Redis 未启动或端口未监听 | 检查 ps aux | grep redis,确认进程存在 |
| 连接超时 (Timeout) | 防火墙拦截或 bind 配置限制 | 检查防火墙规则,确认 bind 包含客户端 IP |
| NOAUTH 错误 | 需要密码但未提供 | 使用 -a 参数或 AUTH password 命令 |
| MISCONF 错误 | 持久化失败或磁盘空间不足 | 检查磁盘空间,修复持久化配置 |
生产环境安装检查清单:
- ✅ 使用稳定版 Redis(非 RC)
- ✅ 配置文件权限设置为 640,属主为 redis 用户
- ✅ 数据目录权限设置为 750,属主为 redis 用户
- ✅ 设置
requirepass并妥善保管密码 - ✅ 开启
appendonly yes保障数据安全 - ✅ 配置
maxmemory防止内存溢出 - ✅ 使用 systemd 管理 Redis 服务,设置开机自启
完成安装与配置后,Redis 服务即可稳定运行。下一阶段将深入 Redis 的数据结构与核心命令,为构建缓存读写分离架构打下坚实基础。