RuoYi-Flowable-Plus项目Redis连接问题分析与解决方案
在使用RuoYi-Flowable-Plus项目时,开发者可能会遇到Redisson无法连接Redis的问题。本文将深入分析问题原因并提供详细的解决方案。
问题现象
开发者在Docker环境中部署了Redis 7.2.3版本,并通过端口16379映射到宿主机。虽然Redis客户端工具可以正常连接,但项目中Redisson组件却无法建立连接,抛出"Unable to connect to Redis server"异常。
错误分析
从错误日志中可以发现关键信息:"ERR AUTH called without any password configured for the default user"。这表明虽然应用配置了密码,但Redis服务端并未正确启用密码验证。
根本原因
问题出在Docker环境下的Redis密码配置方式上。在Docker中仅通过环境变量REDIS_PASSWORD设置密码是不够的,Redis默认不会使用这个环境变量来配置密码验证。需要通过redis.conf配置文件来启用密码验证功能。
解决方案
1. 修改Docker Compose配置
正确的做法是创建一个redis.conf配置文件,并通过卷挂载到容器中:
version: "3.9"
services:
public_redis:
image: redis:latest
container_name: public_redis
restart: always
ports:
- "16379:6379"
volumes:
- ./data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
2. 创建redis.conf配置文件
在项目目录下创建redis.conf文件,内容如下:
requirepass testRedis!.#
3. 应用配置确认
确保应用中的Redis配置正确:
spring:
redis:
host: 192.168.1.18
port: 16379
database: 0
password: 'testRedis!.#'
4. Redisson配置确认
如果项目中使用了自定义的Redisson配置,确保地址和密码设置正确:
config.useSingleServer()
.setAddress("redis://192.168.1.18:16379")
.setPassword("testRedis!.#");
验证步骤
- 重启Docker容器使配置生效
- 使用redis-cli或其他工具验证密码是否生效
- 启动应用检查Redisson连接是否正常
总结
在Docker环境中部署Redis时,密码验证需要通过配置文件而非环境变量来设置。这是Redis的安全机制决定的。理解这一点可以帮助开发者避免类似的连接问题。RuoYi-Flowable-Plus项目作为基于Spring Boot的工作流系统,正确配置Redis对于流程引擎的正常运行至关重要。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



