【发布时间】:2012-06-08 15:29:25
【问题描述】:
我正在尝试在 Amazon AWS Ec2 微实例上运行 node.js 服务器和 Redis 服务器。
我已经安装了 Redis 服务器并且 redis-server 命令运行良好。
我使用 'Forever' 来保持 Redis-Server 运行。它工作正常。
但是当我启动我的节点服务器时,它无法连接到 Redis-Server。
它给出了以下错误 -
Error Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
做一个'Forever List'表明redis服务器运行良好。
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] _pXw node app.js 26670 26671 /home/ubuntu/.forever/_pXw.log 0:0:0:13.463
data: [1] ylT1 node redis-server 25013 26681
我已经验证了redis-server启动时是从6379端口启动的。
谁能帮我解释为什么会发生这个错误以及我如何解决这个问题?
我使用以下代码连接到 Redis 。我为 Redis 安装了客户端库。
var redis = require("redis"),
client = redis.createClient();
当我在本地主机上运行代码时一切正常。
【问题讨论】:
-
您是否使用 ping-pong 例程检查了 AWS 上的 redis 客户端-服务器连接。接下来,也许您应该尝试以 root 身份永久运行它。
-
感谢 almypal。我尝试了乒乓球测试,但测试失败了。接下来,我以 root 身份运行它,而没有使用 forever 。测试奏效了。现在我的 node.js 应用程序也可以正常连接。你认为问题永远是这样吗?我的问题现在已经解决了。如果您将回复作为答案发布,我会接受。谢谢!
-
一个不相关的问题。根据您的指示,我通过 'sudo redis-server &' 在后台运行了 redis-server。现在如何停止 redis-server ?发出“ps”命令不会列出 redis-server。所以我无法让 PID 杀死它。 'Fg' 命令也没有效果。
-
在 Ubuntu 上,您可以使用 sudo fuser -v 5000/tcp 检查在端口 5000 上运行的服务,然后使用 sudo fuser -vk 5000/tcp 终止该服务。
标签: database node.js amazon-ec2 redis