一、服务器先安装并启动 Redis(两种方案)
方案 1:yum 安装(CentOS7/8、Alinux)
# 安装
yum install redis -y
# 开机自启
systemctl enable redis
# 启动
systemctl start redis
# 查看状态
systemctl status redis
方案 2:apt(Ubuntu/Debian)
apt update && apt install redis-server -y
systemctl enable redis-server
systemctl start redis-server
方案 3:Docker 快速部署(推荐,环境干净)
# 拉取镜像并后台运行,映射6379端口,设置密码123456
docker run -d \
--name redis \
-p 6379:6379 \
--restart always \
redis:latest \
redis-server --requirepass 123456
二、服务器 Redis 核心安全配置(必做!)
编辑配置文件:
# yum安装路径
vim /etc/redis.conf
# docker方式不需要改配置,启动命令已设密码
修改 4 个关键项:
-
设置密码
requirepass 自定义强密码(不要简单123456)
-
允许外部 IP 访问 注释掉
bind 127.0.0.1,否则只能本机连bind 127.0.0.1
-
关闭保护模式(外网访问必须)
protected-mode no
-
端口默认 6379,如需修改同步防火墙放行
修改后重启 Redis:
systemctl restart redis
三、服务器放行端口(防火墙 + 云服务器安全组)
1. 防火墙放行 6379
CentOS:
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
Ubuntu:
ufw allow 6379
2. 云服务器额外操作(阿里云 / 腾讯云 / 华为云)
- 控制台找到安全组
- 入方向规则添加:端口 6379,授权对象
0.0.0.0/0(生产建议只放项目服务器内网 IP)
风险:0.0.0.0 所有人可连,线上尽量限制为本机 / 业务内网 IP
四、后端项目修改 Redis 连接配置(部署关键)
本地是 127.0.0.1,部署服务器要改成服务器公网 IP / 内网 IP
1. SpringBoot yml 示例
spring:
redis:
host: 服务器公网IP # 重点:不能127.0.0.1
port: 6379
password: 你的redis密码
database: 0
lettuce:
pool:
max-active: 16
max-idle: 8
min-idle: 2
2. Node.js ioredis
const redis = new Redis({
host: '服务器公网IP',
port: 6379,
password: '你的密码',
db: 0
})
3. Python redis-py
pool = redis.ConnectionPool(
host="服务器公网IP",
port=6379,
password="xxx",
decode_responses=True
)
五、打包、上传、重启项目
- 本地改好配置,打包(jar/dist/ 二进制)
- 上传到服务器(scp / 宝塔面板)
- 重启后端服务:
-
SpringBoot Jar
停止旧进程
pkill -f jar包名
后台启动
nohup java -jar demo.jar > log.out 2>&1 &
-
Node
pm2 restart app
-
Go
nohup ./app > app.log &
六、服务器连通测试(先测通再启动项目,避免报错)
方式 1:服务器本地测试
redis-cli -h 127.0.0.1 -p 6379 -a 你的密码
ping
# 返回PONG代表redis服务正常
方式 2:本地电脑远程连接测试(验证端口 / 安全组是否放行)
本地安装 redis 客户端执行:
redis-cli -h 服务器公网IP -p 6379 -a 密码
ping
- 连不上:安全组没开 6379 / 防火墙未放行 /redis 配置 bind 限制本地 / 密码错误
七、部署线上高频报错 & 解决方案
1. Connection refused 连接拒绝
原因:
- redis 只绑定 127.0.0.1,外部无法访问
- 防火墙没开 6379 端口
- 云服务器安全组未放行 6379
- redis 未启动
2. NOAUTH Authentication required
没配置 redis 密码,或项目配置的 password 填错
3. 项目本地能连,服务器启动报错连不上
项目配置 host 写成 127.0.0.1,jar 部署后 127.0.0.1 代表服务器本机,若 redis 装在另一台服务器就不通,改成 redis 服务器 IP
4. 线上大量连接超时 / 连接耗尽
- 未使用连接池
- 连接池参数过小,调大 max-active
- redis 服务器内存不足,被系统 kill
八、生产环境部署优化(线上必看)
- Redis 和后端同内网部署 后端服务器和 Redis 服务器放同一内网,host 填内网 IP,不走公网,速度快、安全,安全组只放内网段
- 禁止公网直接暴露 Redis 不开放 0.0.0.0 访问,仅业务服务器 IP 可连接
- 持久化开启 RDB+AOF,防止宕机数据丢失
- 高可用:多台服务器用 Redis 哨兵 / 集群
- 不使用默认 6379 端口,修改端口降低扫描攻击风险
- 定期备份 redis 数据
九、特殊场景:Redis 单独一台服务器,后端另一台
- Redis 服务器:放行 6379,安全组允许后端服务器 IP
- 后端项目配置 host 填 Redis 服务器公网 / 内网 IP
- 两台服务器互通网络,测试 redis-cli 远程连通再启动项目