2016-11-11 34 views
0

我在Express.js上编写了一个Node.js应用程序。我在运行在UBUNTU Server 16.04上的EC2实例上安装了Redis服务器。我已经安装NPM模块Redis.I所提到的端口和这样的主机: -如何使用Express.js从运行在本地系统上的node.js应用程序连接到在EC2上运行的redis?

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

当我尝试连接到的Redis的EC2实例,我得到这样的错误: -

events.js:141 
    throw er; // Unhandled 'error' event 
^

Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 
at Object.exports._errnoException (util.js:870:11) 
at exports._exceptionWithHostPort (util.js:893:20) 
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14) 

如何连接到在ec2上运行的redis?

+0

你有没有尝试通过SSH隧道? – mscdex

+0

我使用腻子。它相当于正常的SSH我想 – APJ

+0

您将需要在EC2上的Redis服务器的正确的IP地址,并且该IP地址需要从您尝试连接它的本地系统可到达。 – jfriend00

回答

0

从错误消息,它似乎像redis实际上并没有在您的主机上运行。我会检查redis的确是这样运行的:

ps auxwg | grep redis 

并检查运行的redis进程。另外,更简单的方法是使用“远程登录”命令,尝试当地的Redis实例连接,如:

wintermute:~ 07:52:58 melgart$ telnet 127.0.0.1 6379 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
在我的情况

,Redis的运行起来,所以我得到“连接”的反应。 HTH