即使在 nodejs 中连接 redis 后,Redis 也会出错
Redis giving error even after redis connected in nodejs
我的系统上安装了 redis,运行ning 也安装了它。
我在节点应用程序中使用以下代码来处理 Redis。
redis.js
const redis = require("redis");
let client = redis.createClient(6379, '127.0.0.1', {});
let isRedis = false;
client.on("connect", function () {
console.log(`connected to redis`);
isRedis = true;
});
client.on("error", function (err) {
console.log("redis connection error " + err);
throw err;
});
client.on("end", function (err) {
console.log("redis connection end " + err);
});
module.exports = {
SetRedis,
GetKeys,
GetRedis,
GetKeyRedis,
delRedis
};
我正在使用节点 index.js 命令 运行 应用程序,当连接建立时,它也应该给我“连接到 redis”,但我没有在我的控制台上收到此消息。
npm 包也存在于 package.json
我猜你在连接的时候出错了。
应该是
let client = redis.createClient('127.0.0.1', 6379, {});
而不是
let client = redis.createClient(6379, '127.0.0.1', {});
Node Redis 4.x 不允许您传入主机和端口的离散参数。使用 Node Redis 连接到 Redis 的规范示例是这样的:
import { createClient } from 'redis';
(async () => {
const client = createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
await client.connect();
await client.set('key', 'value');
const value = await client.get('key');
})();
如果你想连接到端口 6379 上本地主机以外的其他地方,我建议使用 URL。像这样:
createClient({ url: 'redis://awesome.redis.server:6380' });
但如果您想要更好的控制,您可以在 GitHub 上的文档中找到所有内容 configuration options。
工作redis.js,
const redis = require("redis");
let isRedis = false;
(async () => {
let client = redis.createClient(6379, '127.0.0.1', {});// create config
client.on("connect", function () {
console.log(`connected to redis`);
isRedis = true;
});
client.on("error", function (err) {
console.log("redis connection error " + err);
throw err;
});
client.on("end", function (err) {
console.log("redis connection end " + err);
});
function GetKeyRedis(key) {
return new Promise(function (resolve, reject) {
console.log("dd----",key,isRedis);
if (isRedis) {
client.get(key).then((data,err) => {
if(err){
reject(err);
}
if(data){
resolve(data)
} else {
resolve(false);
}
});
} else {
resolve(false);
}
});
}
module.exports = {
GetKeyRedis
};
await client.connect();
})();
我的系统上安装了 redis,运行ning 也安装了它。
我在节点应用程序中使用以下代码来处理 Redis。
redis.js
const redis = require("redis");
let client = redis.createClient(6379, '127.0.0.1', {});
let isRedis = false;
client.on("connect", function () {
console.log(`connected to redis`);
isRedis = true;
});
client.on("error", function (err) {
console.log("redis connection error " + err);
throw err;
});
client.on("end", function (err) {
console.log("redis connection end " + err);
});
module.exports = {
SetRedis,
GetKeys,
GetRedis,
GetKeyRedis,
delRedis
};
我正在使用节点 index.js 命令 运行 应用程序,当连接建立时,它也应该给我“连接到 redis”,但我没有在我的控制台上收到此消息。
npm 包也存在于 package.json
我猜你在连接的时候出错了。 应该是
let client = redis.createClient('127.0.0.1', 6379, {});
而不是
let client = redis.createClient(6379, '127.0.0.1', {});
Node Redis 4.x 不允许您传入主机和端口的离散参数。使用 Node Redis 连接到 Redis 的规范示例是这样的:
import { createClient } from 'redis';
(async () => {
const client = createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
await client.connect();
await client.set('key', 'value');
const value = await client.get('key');
})();
如果你想连接到端口 6379 上本地主机以外的其他地方,我建议使用 URL。像这样:
createClient({ url: 'redis://awesome.redis.server:6380' });
但如果您想要更好的控制,您可以在 GitHub 上的文档中找到所有内容 configuration options。
工作redis.js,
const redis = require("redis");
let isRedis = false;
(async () => {
let client = redis.createClient(6379, '127.0.0.1', {});// create config
client.on("connect", function () {
console.log(`connected to redis`);
isRedis = true;
});
client.on("error", function (err) {
console.log("redis connection error " + err);
throw err;
});
client.on("end", function (err) {
console.log("redis connection end " + err);
});
function GetKeyRedis(key) {
return new Promise(function (resolve, reject) {
console.log("dd----",key,isRedis);
if (isRedis) {
client.get(key).then((data,err) => {
if(err){
reject(err);
}
if(data){
resolve(data)
} else {
resolve(false);
}
});
} else {
resolve(false);
}
});
}
module.exports = {
GetKeyRedis
};
await client.connect();
})();