在我的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达到目标。有人有主意吗?
答案 0 :(得分:1)
确保您的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");