1

有时我的 node-redis 客户端需要很长时间才能初始连接到 redis 服务器。

我在这里记录 .on('error')、.on('end')、.on('connect') 和 .on('ready') 事件:

Redis:  storage#0 <localhost:6381> end
Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed - getaddrinfo ENOTFOUND]
/*... much of same errors, sometimes up to 5minutes ...*/
Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed - getaddrinfo ENOTFOUND]
Redis:  storage#0 <localhost:6381> connect
Redis:  storage#0 <localhost:6381> ready

当它发生时,我通常可以使用 redis-cli 连接到 redis-server。

有人对此原因有任何想法吗?

4

1 回答 1

2

错误“[Error: Redis connection to localhost:6381 failed - getaddrinfo ENOTFOUND]”似乎指向地址解析问题。

因此,一个简单的建议是使用 127.0.0.1 而不是 localhost 来绕过对 getaddrinfo 的调用,以及可能失败的相关 DNS 查询。

127.0.0.1 的结果略有不同:仍然是一个错误,但消息现在是 ECONNREFUSED,这意味着远程 Redis 服务器可能没有侦听提供的端口 - 或者连接超时设置得太低。

于 2014-03-27T18:05:26.000 回答