我的Windows电脑上Node Redis不起作用,即使服务器已经启动并运行。

8
const express = require("express");
const redis = require("redis");
const app = express();

const client = redis.createClient({
  url: "redis://admin123@ec2-35-182-15-126.ca-central-1.compute.amazonaws.com",
});

client.on("connect", function () {
  console.log("redis connected");
  console.log(`connected ${redisClient.connected}`);
});

client.on("error", (err) => {
  console.log(err);
});

app.listen(process.env.PORT || 3000, () => {
  console.log("Node server started");
});

上述代码没有展示任何与redis服务器的连接,即使我已经通过Redsmin连接到了EC2 redis实例。 Redsmin中的托管详细信息 这是一件非常简单的事情,但是我得到的错误无法通过谷歌搜索解决。

Node服务器启动于C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:387 return Promise.reject(new errors_1.ClientClosedError()); ^

ClientClosedError: 客户端已关闭 at Commander._RedisClient_sendCommand (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:387:31) at Commander.commandsExecutor (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:160:154) at Commander.BaseClass. [as set] (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\commander.js:8:29) at Object. (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\redis.js:19:8) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47

帮我理解这个问题。提前感谢。


你能否先通过以下CLI命令确认服务器是否可达:redis-cli -u redis://<url> - Saurav Kumar
13个回答

0

我有过类似的经历。我认为问题的原因是我使用的redis服务器比5.0版本旧。所以,也许你处于类似的情况。

根据node-redis文档

“Node Redis应该可以与旧版本的Redis一起使用,但它没有经过完全测试,我们无法提供支持。” 但是,“< 5.0”被标记为不受支持。


0

安装 Redis 客户端 3.1.2 版本,只需在 package.json 文件中的依赖项中添加 "redis": "3.1.2" 即可。

"dependencies" : { "redis": "3.1.2" }


0
我认为问题可能是由于v4+在源代码中使用了TypeScript。如果您的服务器代码不兼容TypeScript,那可能就是问题所在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接