nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379] with root cause
时间: 2025-04-18 16:39:10 浏览: 19
### 解决 Redis 连接异常问题
当遇到 `io.lettuce.core.RedisConnectionException` 报错提示无法连接到 `localhost:6379` 时,这通常意味着应用程序尝试通过本地主机地址访问 Redis 实例失败[^1]。
#### 配置文件检查
确认 Spring Boot 应用程序中的 `application.yaml` 文件已正确配置 Redis 主机地址。如果目标是连接至 Linux 虚拟机上的 Redis,则应指定虚拟机 IP 地址而非默认的 `localhost` 或者 `127.0.0.1`:
```yaml
spring:
redis:
host: <Linux VM IP Address>
port: 6379
```
#### 网络连通性验证
确保从应用服务器能够到达 Redis 所在机器,并且端口开放无阻塞。可以使用命令行工具如 `telnet` 或 `nc (netcat)` 测试网络可达性和端口状态:
```bash
telnet <Linux VM IP> 6379
# or
nc -zv <Linux VM IP> 6379
```
#### 安全组/防火墙设置调整
对于云环境下的实例或有安全策略的应用场景,需核查并适当放宽安全组规则或防火墙配置,允许来自客户端所在网段对 Redis 默认监听端口(即 6379)发起 TCP 请求。
#### Redis Server 配置校验
查看 Redis server 是否绑定了正确的接口地址。编辑 `/etc/redis.conf` 文件内的 bind 参数来匹配实际需求;如果是远程访问则可能需要取消绑定特定IP限制或将之设为 `0.0.0.0` 来接受所有外部请求(注意安全性)[^3]。
#### 日志审查
查阅 Redis 和应用程序的日志记录寻找更多线索。日志中可能会有关于认证错误、权限不足或者其他潜在原因的信息帮助定位具体问题所在。
```python
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
try:
# Your code that connects to Redis here...
except Exception as e:
logger.error(f"Failed to connect to Redis with error {str(e)}")
```
阅读全文