Redis错误8连接本地主机:6379。节点名称或服务名称提供,或不知道

问题描述:

我的环境是Mac OS 10.9.2,python3.3,redis-2.6.9(64位)。Redis错误8连接本地主机:6379。节点名称或服务名称提供,或不知道

我有很多的线程(nealy 2000)使用相同的Redis实例来写入数据,但一些线程抛出以下例外:

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/usr/local/lib/python3.3/site-packages/redis/connection.py", line 250, in connect 
    sock = self._connect() 
    File "/usr/local/lib/python3.3/site-packages/redis/connection.py", line 268, in _connect 
    self.socket_timeout) 
    File "/usr/local/Cellar/python3/3.3.4/Frameworks/Python.framework/Versions/3.3/lib/python3.3/socket.py", line 417, in create_connecti 
on 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno 8] nodename nor servname provided, or not known 

Traceback (most recent call last): 
    File "/usr/local/Cellar/python3/3.3.4/Frameworks/Python.framework/Versions/3.3/lib/python3.3/threading.py", line 901, in _bootstrap_i 
nner 
    self.run() 
    File "/usr/local/Cellar/python3/3.3.4/Frameworks/Python.framework/Versions/3.3/lib/python3.3/threading.py", line 858, in run 
    self._target(*self._args, **self._kwargs) 
    File "proxypool.py", line 289, in _efficiency_proxy 
    self.rdb.zadd(db_proxy, time_delay, proxy) 
    File "/usr/local/lib/python3.3/site-packages/redis/client.py", line 1345, in zadd 
    return self.execute_command('ZADD', name, *pieces) 
    File "/usr/local/lib/python3.3/site-packages/redis/client.py", line 464, in execute_command 
    connection.send_command(*args) 
    File "/usr/local/lib/python3.3/site-packages/redis/connection.py", line 334, in send_command 
    self.send_packed_command(self.pack_command(*args)) 
    File "/usr/local/lib/python3.3/site-packages/redis/connection.py", line 316, in send_packed_command 
    self.connect() 
    File "/usr/local/lib/python3.3/site-packages/redis/connection.py", line 253, in connect 
    raise ConnectionError(self._error_message(e)) 
redis.exceptions.ConnectionError: Error 8 connecting localhost:6379. nodename nor servname provided, or not known. 

是否有某种方式来解决这个问题?
我试图在发生这种异常时连接到redis服务器,并使用ulimit -n来设置较大的数字,但这两种方法不起作用。

+0

向我们展示地址分配给变量(主机,端口)的代码。 – Agis

+0

@Agis,我使用本地redis的默认(主机,端口)。 – flyer

我知道为什么会发生这种情况。这是由redis-server连接的最大数量引起的,它与操作系统设置的文件处理程序的最大数量有关。
如果我设置:

$ ulimit -n 1024 

它的工作原理。

最有可能的红色服务器没有运行。使用“redid-server”命令运行它。