redis.exceptions.ConnectionError:错误 -2 连接 localhost:6379。名称或服务未知

14 投票
2 回答
30411 浏览
提问于 2025-04-18 16:21

我在服务器上运行我的代码时遇到了这个错误,我的环境是Debian系统,使用的是 Python2.7.3

Traceback (most recent call last):
  File "fetcher.py", line 4, in <module>
    import mirad.fetcher_tasks as tasks
  File "/home/mirad/backend/mirad/fetcher_tasks.py", line 75, in <module>
    redis_keys = r.keys('*')
  File "/home/mirad/backend/venv/local/lib/python2.7/site-packages/redis/client.py", line 863, in keys
    return self.execute_command('KEYS', pattern)
  File "/home/mirad/backend/venv/local/lib/python2.7/site-packages/redis/client.py", line 534, in execute_command
    connection.send_command(*args)
  File "/home/mirad/backend/venv/local/lib/python2.7/site-packages/redis/connection.py", line 532, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/home/mirad/backend/venv/local/lib/python2.7/site-packages/redis/connection.py", line 508, in send_packed_command
    self.connect()
  File "/home/mirad/backend/venv/local/lib/python2.7/site-packages/redis/connection.py", line 412, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error -2 connecting to localhost:6379. Name or service not known.

当我运行 redis-cli 时,它可以正常工作,没有任何错误:

$ redis-cli 
127.0.0.1:6379> 

2 个回答

2

我遇到过类似的问题,后来才意识到我没有在终端里通过命令 $ redis-server 启动 Redis。也许你也遇到这种情况。

17

看起来你正在尝试在你的Debian环境中连接Redis,但服务器的身份没有被识别出来。从错误追踪信息来看,你是用“localhost”作为主机名来连接的。

r_server=redis.Redis(host="localhost",port=6379)

但是,你的系统无法理解“localhost”,你需要在hosts文件中添加一条记录,也就是告诉系统127.0.0.1是localhost。你可以在/etc/hosts文件中添加下面的代码:

127.0.0.1 localhost

否则,你可以使用下面的命令来连接Redis;

r_server=redis.Redis(host="127.0.0.1",port=6379) 
 

撰写回答