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
来设置较大的数字,但这两种方法不起作用。
答
我知道为什么会发生这种情况。这是由redis-server连接的最大数量引起的,它与操作系统设置的文件处理程序的最大数量有关。
如果我设置:
$ ulimit -n 1024
它的工作原理。
答
最有可能的红色服务器没有运行。使用“redid-server”命令运行它。
向我们展示地址分配给变量(主机,端口)的代码。 – Agis
@Agis,我使用本地redis的默认(主机,端口)。 – flyer