Redis 配置与排错说明
适用项目:dkd-parent(若依 RuoYi 架构)
适用环境:本地开发,Windows 版 Redis(
C:\Program Files\Redis\)
1. 应用端配置位置
Redis 连接配置在 dkd-admin/src/main/resources/application.yml:
yaml
spring:
redis:
# 地址
host: localhost
# 端口,默认为 6379
port: 6379
# 数据库索引
database: 0
# 密码(本地 Redis 未设置密码时留空)
password:
# 连接超时时间
timeout: 10s
lettuce:
pool:
min-idle: 0
max-idle: 8
max-active: 8
max-wait: -1ms
2. 核心原则:两边密码必须一致
Redis 的密码是服务端全局属性,客户端(应用)与服务端必须保持一致:
| Redis 服务端 | application.yml 的 password | 结果 |
|---|---|---|
| 无密码 | 留空 | ✅ 正常 |
| 无密码 | 填了值(如 root) | ❌ ERR Client sent AUTH, but no password is set |
| 有密码 | 留空 | ❌ NOAUTH Authentication required |
| 有密码 | 与服务端相同 | ✅ 正常 |
因为多个项目常连同一个 Redis,一旦服务端设了密码,每个项目都要在各自配置里填上相同密码。
3. 本地开发建议
本地开发且 Redis 不对外网开放时,可以不设置密码 ,password 留空即可,最省事,其他项目也无需改动。
生产环境 / 服务器 / 端口对外暴露时,必须设置密码,并建议同时修改默认端口、绑定内网 IP、配置防火墙。
4. 给 Redis 设置密码(可选)
方式一:临时设置(重启 Redis 后失效)
powershell
cd "C:\Program Files\Redis"
.\redis-cli.exe
在交互界面执行:
CONFIG SET requirepass "root"
之后连接需带密码:.\redis-cli.exe -a root
方式二:永久设置(改配置文件)
-
打开配置文件:
- 以服务方式启动:
C:\Program Files\Redis\redis.windows-service.conf - 手动启动:
C:\Program Files\Redis\redis.windows.conf
- 以服务方式启动:
-
找到被注释的
# requirepass foobared,改为:requirepass root -
重启 Redis 服务:
powershellGet-Service *redis* Restart-Service Redis -
同步修改应用配置 :把
application.yml的password改为root,保持两边一致。
5. 常见报错速查
5.1 ERR Client sent AUTH, but no password is set
- 含义:应用填了密码,但 Redis 服务端没设密码。
- 处理:把
application.yml的password留空,或给 Redis 设置相同密码。
5.2 NOAUTH Authentication required / invalid password
- 含义:Redis 有密码,但应用没填或填错。
- 处理:在
application.yml填写正确密码。
5.3 Unable to connect to Redis ... localhost:6379
- 含义:连不上 Redis(服务未启动 / 端口不对 / 未安装)。
- 处理:确认 Redis 服务已启动(
Get-Service *redis*或任务管理器查看redis-server.exe),端口为 6379。
5.4 启动时报 captchaController / sysConfigServiceImpl 初始化失败
- 通常是上面 Redis 连接问题的连锁反应,先解决 Redis 连接即可。