无法连接到nodejs中的redis
not able to connect to redis in nodejs
首先是细节:
节点版本:v16
使用 redislabs 云 (v6.2.3)
npm 包 redis 版本 4.0.3
这是代码...
const redis = require("redis");
require("dotenv").config();
const client = redis.createClient({
host: process.env.REDIS_URI,
port: process.env.REDIS_PORT,
password: process.env.REDIS_PASSWORD
});
client.on("connect", () => {
console.log("Connected to our redis instance!");
client.set("iAmAKey", "Value");
});
在 运行 上它不输出任何东西 :( 只是在一段时间后退出。
如有任何帮助,我们将不胜感激。
谢谢!
对 .createClient
的调用创建了一个客户端,但实际上并没有连接到 Redis。所以连接事件永远不会触发。 Node Redis 4.x 支持 promise,所以你真的根本不需要回调。您可以使用以下方法完成同样的事情:
const redis = require("redis");
const client = redis.createClient();
await client.connect();
await client.set('foo', 'bar');
let foo = client.get('foo');
请注意,为了简洁起见,我在示例代码中删除了 dotenv
的用法,只是让它连接到 localhost
上的 Redis。
好吧,我现在让它工作了。添加此作为任何未来有相同问题的流浪者的参考。
所以社区建议改用URL。
const redis = require("redis");
require("dotenv").config();
(async () => {
const client = redis.createClient({
url: `redis://default:${process.env.REDIS_PASSWORD}@${process.env.REDIS_URI}:${process.env.REDIS_PORT}`,
});
client.on("error", (err) => console.log("Redis Client Error", err));
await client.connect();
await client.set("key", "value");
console.log("Redis Connected!")
const value = await client.get("key");
console.log(value);
})();
以下问题供日后参考:Not able to connect to redis-labs cloud redis server #1892
首先是细节:
节点版本:v16
使用 redislabs 云 (v6.2.3)
npm 包 redis 版本 4.0.3
这是代码...
const redis = require("redis");
require("dotenv").config();
const client = redis.createClient({
host: process.env.REDIS_URI,
port: process.env.REDIS_PORT,
password: process.env.REDIS_PASSWORD
});
client.on("connect", () => {
console.log("Connected to our redis instance!");
client.set("iAmAKey", "Value");
});
在 运行 上它不输出任何东西 :( 只是在一段时间后退出。
如有任何帮助,我们将不胜感激。 谢谢!
对 .createClient
的调用创建了一个客户端,但实际上并没有连接到 Redis。所以连接事件永远不会触发。 Node Redis 4.x 支持 promise,所以你真的根本不需要回调。您可以使用以下方法完成同样的事情:
const redis = require("redis");
const client = redis.createClient();
await client.connect();
await client.set('foo', 'bar');
let foo = client.get('foo');
请注意,为了简洁起见,我在示例代码中删除了 dotenv
的用法,只是让它连接到 localhost
上的 Redis。
好吧,我现在让它工作了。添加此作为任何未来有相同问题的流浪者的参考。
所以社区建议改用URL。
const redis = require("redis");
require("dotenv").config();
(async () => {
const client = redis.createClient({
url: `redis://default:${process.env.REDIS_PASSWORD}@${process.env.REDIS_URI}:${process.env.REDIS_PORT}`,
});
client.on("error", (err) => console.log("Redis Client Error", err));
await client.connect();
await client.set("key", "value");
console.log("Redis Connected!")
const value = await client.get("key");
console.log(value);
})();
以下问题供日后参考:Not able to connect to redis-labs cloud redis server #1892