救援:连接被拒绝 - 无法连接到本地的Redis,端口为6379。

37

我按照安装 Resque 的说明进行了操作,但现在当我尝试使用这个命令启动一个 worker 时,出现连接错误:

$ QUEUE=mailer rake environment resque:work --trace

我得到的错误信息如下:

连接被拒绝 - 无法连接到本地主机的 Redis 6379 端口


看起来 Redis 服务器没有运行。 - marcgg
Server Fault有一个关于“连接被拒绝”(Connection Refused)的规范问题,链接为http://serverfault.com/questions/725262/what-causes-the-connection-refused-message。 - Raedwald
5个回答

55

您是否已验证redis-server正在运行?请不要让我剖析以下命令,但是您可以在终端中键入:

ps aux | grep redis

然后您应该会看到类似以下的内容:

redis 13319 0.0 0.0 2884 1056 ? Ss 10:54 0:00 /usr/bin/redis-server /etc/redis/redis.conf

如果未运行,建议输入以下命令:

nohup redis-server &

这将启动一个redis-server进程并将其与终端分离。否则,我认为您需要一直保持该终端打开,以使redis-server保持运行状态。

(始终验证进程是否在运行,因此请再次使用第一个命令。)

更新:我不确定这是否适用于所有版本,但在Ubuntu 16.04上Redis Server 3.0.6版本中,您也可以发出sudo service redis-server status命令。您将收到一些冗长的输出,因此我将不会全部发布,但对于我们中的一些人来说,这可能是另一个选项。


15

你已经安装了redis吗?

在Ubuntu上安装REDIS

参考: http://redis.io/download

  1. 下载、提取并编译Redis:

  2. $ cd ~/Installations
    $ curl -O http://redis.googlecode.com/files/redis-2.2.1.tar.gz
    $ tar xzf redis-2.2.1.tar.gz
    $ cd redis-2.2.1
    $ sudo make
    
  3. 安装 Tcl(工具命令语言)运行时

  4. $ sudo apt-get install tcl8.5
    
  5. 运行 Redis 服务器

    $ src/redis-server
    [31371] 24 Feb 10:14:03 # Warning: no config file specified, using the default config. In order to   specify a config file use 'redis-server /path/to/redis.conf'
    [31371] 24 Feb 10:14:03 * Server started, Redis version 2.2.1
    [31371] 24 Feb 10:14:03 # WARNING overcommit_memory is set to 0! Background save may  fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    [31371] 24 Feb 10:14:03 * The server is now ready to accept connections on port 6379
    

11

只要做就行了:- sudo apt-get install redis-server


4
使用redis-server启动服务器,然后使用redis-cli ping测试服务器是否已启动。如果服务器已启动,您应该收到一个pong响应。这是从文档中直接摘取的。 进入链接描述

2

在连接Redis时,应该使用"127.0.0.1:6379"而不是"localhost:6379"。因此,无论您想在哪里连接Redis,都应该使用redis-server的IP地址。


看起来 Redis 端口与 HTTP 端口无关。127.0.0.1 是 HTTP 本地主机。 - Yan King Yin
@YanKingYin localhost是一个完全限定域名(FQDN)。在大多数计算机上,它会被翻译成IPv4中的127.0.0.1或IPv6中的::1。因此,它与HTTP或其他协议无关。 - Reza-S4

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