我无法使用TLS连接到Heroku Redis。我尝试了heroku文档中给出的内容,以及这篇文章中的答案如何连接heroku Redis TLS节点?但似乎什么都不起作用。我当前的redis选项看起来像:
const Redis = require('ioredis');
const url = process.env.REDIS_URL;
const options = {
tls: {
rejectUnauthorized: false,
},
};
const opts = new Redis(url, options);
我得到的错误是
[ioredis] Unhandled error event:Error: connect ETIMEDOUT
at TLSSocket.<anonymous
(/app/node_modules/ioredis/built/redis/index.js:310:37)
at Object.onceWrapper (events.js:421:28)
at TLSSocket.emit (events.js:315:20)
.....
REDIS_URL和REDIS_TLS_URL之间的区别是什么?使用哪一个?
REDIS_TLS_URL将在URL的方案中有一个额外的"s"->rediss://password@host:port与REDIS_URL(在其方案中有一个"s"(。另一个区别是端口。TLS端口通常是常规端口的+1。在Heroku Redis版本6上,您需要使用Redis_TLS_URL和上面定义的TLS选项。
const Redis = require('ioredis');
const url = process.env.REDIS_TLS_URL;
const options = {
tls: {
rejectUnauthorized: false,
},
};
const opts = new Redis(url, options);