node.js - ioredis 错误 : connect ETIMEDOUT - Can't get connection to local redis server

标签 node.js redis ioredis

问题

在我的 node.js 后端,我初始化了一个 redis 服务器:

const options = {
  host: process.env.REDIS_HOST, // localhost
  port: process.env.REDIS_PORT, // 6379 Redis standard port
  db: 0,
  // reconnect after
  retryStrategy: times => Math.min(times * 50, 2000),
  tls: {}
};

export const redis = new Redis(options);

不幸的是,我总是收到这个错误信息:

[ioredis] Unhandled error event: Error: connect ETIMEDOUT
    at TLSSocket.<anonymous> (/home/pascal/vipfy/vipfy-backend/node_modules/ioredis/built/redis.js:298:31)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket.EventEmitter.emit (domain.js:442:20)
    at TLSSocket.Socket._onTimeout (net.js:449:8)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

我在本地安装了redis,使用redis-cli ping本地服务器,没有设置密码。它总是给出肯定的答案,但我似乎无法通过 ioredis 获得它。有人有想法吗?

最佳答案

确保您的 Redis 服务器正在运行。您只需尝试不使用选项参数,因此它将尝试通过主机自动连接您的本地主机 redis 作为 localhost 和端口作为 6379

redis = new Redis();

如果您没有任何特定优势,请尝试以下,我正在使用以下一个并且效果很好。

包:“redis”:“^2.8.0”

代码:

var redis = require('redis');
var redis_conn = redis.createClient();

redis_conn.set("key", "val");

关于node.js - ioredis 错误 : connect ETIMEDOUT - Can't get connection to local redis server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57614000/

相关文章:

javascript - Redis不会立即删除key

javascript - 删除一对一和一对多引用 - Mongoose

node.js - MongoClient.connect不执行回调函数

node.js - 在strongLoop中控制模型访问的最佳解决方案

node.js - 将 CouchDB 和 Redis 一起用于事务数据

nginx - lua-resty-redis set_keepalive 推荐设置

java - redis pub sub with jedis , sub crashes with error

node.js - 在 Linux Ubuntu 的 Windows 子系统中链接 Windows 命令

node.js - 如果与 redis 服务器建立了连接,如何检查 ioredis?

node.js - 交互式地执行操作并且它有效。以编程方式执行相同的操作,但失败了。 Redis、heroku、 Node