【问题标题】:Redis - ECONNREFUSED. Even though server is runningRedis - ECONNREFUSED。即使服务器正在运行
【发布时间】:2014-07-18 11:21:00
【问题描述】:

我已经阅读了 stackoverflow 上关于 ECONNREFUSED 错误的所有其他线程,但仍然没有任何效果。 目前我正在开发 Ubuntu 12.04.1 LTS

对于测试,我有这个非常简单的代码:

var redis = require("redis"),
    client = redis.createClient(6379,"127.0.0.1");

redis.debug_mode = true;

client.on("connect", function () {
    client.set("foo_rand000000000000", "some fantastic value");
});

但每当我启动它时,我得到的只是 ECONNREFUSED 错误:

root@oncn05:~/ba# node test.js
hiredis parser not installed.
Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
    at RedisClient.on_error (/root/ba/node_modules/redis/index.js:196:24)
    at Socket.<anonymous> (/root/ba/node_modules/redis/index.js:106:14)
    at Socket.emit (events.js:67:17)
    at Array.0 (net.js:319:25)
    at EventEmitter._tickCallback (node.js:192:41)
root@oncn05:~/ba#

事情是:用redis-cli连接redis是没问题的。

root@oncn05:~/ba# redis-cli
redis 127.0.0.1:6379>

此外,日志没有显示任何可疑之处。 为什么甚至说没有安装hiredis解析器?我用npm install hiredis 安装了它。但即使我没有。它甚至在哪里使用?

感谢每一个帮助。

【问题讨论】:

  • 不将连接参数传递给createClient时是否得到相同的结果?
  • sudo netstat -nlp4 显示什么?

标签: node.js redis hiredis


【解决方案1】:

首先:感谢所有阅读和/或回答我的问题的人。

通常情况下,如果您将这些参数传递给 createClient 并没有什么区别,因为 127.0.0.1:6379 是默认设置。

我发现我有一个旧的 node.js 版本 (0.6.xx),所以我决定完全删除它而不是重新安装它。

所以,首先我使用命令sudo apt-get remove nodejs 删除了节点。之后我安装了新版本,如下所述:installing via package manager

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

现在一切都按预期进行。我不知道为什么我没有早点想到这个。

【讨论】:

  • 我对节点 v0.6.12 有同样的问题
  • 疯狂的问题,但我在 v0.6.12 上遇到了同样的问题!
猜你喜欢
  • 2022-01-22
  • 2020-01-01
  • 2012-04-09
  • 2022-01-05
  • 1970-01-01
  • 2015-10-14
  • 2013-01-26
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多