Val*_*har 4 javascript redis node.js
我已经在端口 6379 上启动并运行了 redis,通过 telnet 连接工作正常。
我正在尝试在 node.js 上连接到它,但我没有从事件监听器得到任何响应。如果我调用像 client.set() 这样的任何函数,我会得到:“ClientClosedError:客户端已关闭”。
这是我正在运行的代码:
const redis = require('redis');
const client = redis.createClient(6379);
client.on('connect', () => {
console.log('connected');
});
client.on('end', () => {
console.log('disconnected');
});
client.on('reconnecting', () => {
console.log('reconnecting');
});
client.on('error', (err) => {
console.log('error', { err });
});
setTimeout(() => {console.log("goodbye") }, 20*1000 );
Run Code Online (Sandbox Code Playgroud)
20秒内没有任何反应,然后就关闭了
从v4node-redis库开始,需要client.connect()在初始化客户端后调用。请参阅此迁移指南。
const redis = require('redis');
const client = redis.createClient({ socket: { port: 6379 } });
client.connect();
client.on('connect', () => {
console.log('connected');
});
Run Code Online (Sandbox Code Playgroud)
您可能还需要考虑await在异步函数中运行客户端连接方法。所以你不必担心事件监听器。
const redis = require('redis');
(async () => {
try {
const client = redis.createClient({ socket: { port: 6379 } });
await client.connect();
console.log('connected');
} catch (err) {
console.error(err)
}
})()
Run Code Online (Sandbox Code Playgroud)