redis.exceptions.ConnectionError: Ошибка -2 при подключении к локальному узлу:6379. Имя или услуга не известны
У меня есть эта ошибка, когда я запускаю свой код на сервере, мой env является 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>
1 ответ
Решение
Кажется, вы пытаетесь подключиться к серверу, который не идентифицирован вашей текущей средой Debian. Из Traceback я вижу, что вы пытаетесь подключиться, используя имя хоста как 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="localhost",port=6379)
Я столкнулся с подобной проблемой и позже понял, что не открывал redis в терминале командой: $ redis-server. Может это так.