问题描述
在做springboot项目过程中,使用restfulBox测试Web方法时,出现redis连接异常
后来在Redis Desktop Manager中测试redis连接,也没有成功
检查内容
1. 检查redis配置文件redis.conf
主要看以下几个内容:
bind 0.0.0.0 # 0.0.0.0,允许服务器接受来自任何网络接口的连接,
# 127.0.0.1,只有本机客户端可以访问,其他服务器无法访问
protected-mode no # no,禁用保护模式,允许从外部计算机连接到Redis服务器
# yes,当保护模式开启时,如果没有设置绑定地址(bind)或密码(requirepass),Redis服务器将只接受本地连接
requirepass xxx # 设置连接密码
2. 检查redis端口映射
0.0.0.0:6379->6379/tcp
3. 关闭防火墙,或者开放对应端口
# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 永久开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
4. 检查Redis密码配置正确
检查是否启用了密码认证,但未在连接时提供。
5. 确认Redis容器正常运行
# 查看当前正在运行的容器
docker ps
# 检查redis容器是否运行
docker ps -a | grep redis
6. 测试连接性
使用redis-cli测试
# 进入容器内部执行
docker exec -it redis redis-cli
# 如果设置了密码
AUTH [username] password
# 测试连通性,返回PONG
ping
7. 确认宿主机与虚拟机的网络模式
因为是校园网,选择使用NAT模式,将宿主机端口(如6379)映射到虚拟机内部6379端口。
- 修改后如果还是无法连通,建议可以试试重启docker,或者开机重启电脑(真的很玄学)