最近在折腾node后端,遇到了一个redis连接失败的问题,记录一下:
场景复现: 本地连接redis代码:
1 | const client = redis.createClient("6379", "127.0.0.1"); |
服务器连接redis代码: 1
2
3
4
5
6
7const client = redis.createClient("6379", "172.17.0.1");//redis docker 的 host 和 port
client.on("connect", function () {
console.log("Redis Connected!");
});
client.connect();
本地连接成功,服务器连接redis docker失败, 报错:
1 | Error: connect ECONNREFUSED 127.0.0.1:6379 |
之后无论怎么修改配置端口号和host都会报错说连不上127.0.0.1:6379
。
后排查原因发现redis.createClient("6379", "172.17.0.1");
代码错误,导致redis绕过配置连接默认host和端口号,本地的redis恰好在默认127.0.0.1:6379
下运行。
修改方法: 将 redis.createClient("6379", "172.17.0.1");
修改为:
1 | const client = redis.createClient({ |
即可。