出现 Redis Client On Error: Error: connect ECONNREFUSED 47.100.XXX.XX:6379
错误,表明 Redis 客户端无法连接到指定的 Redis 服务器,可按以下步骤排查解决:
1. 检查 Redis 服务器是否运行
操作:在 Redis 服务器所在终端执行 redis - cli ping
。
若返回 PONG,说明 Redis 服务运行正常,进入下一步;
若无响应,需启动 Redis 服务(以常见系统为例):
- Linux(如 Ubuntu/CentOS):
sudo systemctl start redis
(或 redis - server 直接启动)。
2. 验证网络连接与端口开放
- 测试端口连通性 :在客户端所在终端执行
telnet 47.100.XX.XX 6379
。
若提示 Connected,说明端口开放且网络通畅,进入下一步;
若提示连接失败,检查以下两项:-
防火墙设置:
- Linux 系统:使用
firewall - cmd --query - port=6379/tcp
检查端口是否开放,未开放则执行firewall - cmd --add - port=6379/tcp --permanent
开放端口,再重启防火墙firewall - cmd --reload
。 - 云服务器(如阿里云、腾讯云):检查安全组规则,确保 6379 端口(TCP)允许入站。
- Linux 系统:使用
-
网络连通性 :确认客户端与服务器间无网络隔离(如 VPN、代理干扰),可尝试
ping 47.100.165.17
测试基础网络连通性。
-
3. 检查 Redis 服务器配置
查看配置文件 :找到 Redis 配置文件(通常为 /etc/redis/redis.conf
),确认以下内容:
- 端口:
port 6379
确保端口未被修改。 - 监听地址:若 bind 配置为
127.0.0.1
,表示仅允许本地连接。需改为bind 0.0.0.0
(允许所有地址访问)或指定允许的客户端 IP(如117.64.3.191
),修改后重启 Redis 服务:
Linux:sudo systemctl restart redis
。
4. 检查客户端连接配置
确认客户端代码中连接的 IP 和端口正确,例如(以 Node.js 为例):
js
const redis = require('redis');
const client = redis.createClient({
host: '47.100.XXX.XX',
port: 6379
});
若 Redis 配置了密码,还需添加 password 参数:
js
const client = redis.createClient({
host: '47.100.XXX.XX',
port: 6379,
password: '你的 Redis 密码'
});
完成以上步骤后,重新运行客户端,若配置正确且网络正常,应能成功连接 Redis 服务器。