出現 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 為例):
const redis = require('redis');
const client = redis.createClient({ host: '47.100.XXX.XX', port: 6379
});
若 Redis 配置了密碼,還需添加 password 參數:
const client = redis.createClient({ host: '47.100.XXX.XX', port: 6379, password: '你的 Redis 密碼'
});
完成以上步驟后,重新運行客戶端,若配置正確且網絡正常,應能成功連接 Redis 服務器。