Не удалось подключиться к Redis на 127.0.0.1:6379: соединение отклонено с помощью homebrew

Использование homebrew для установки Redis, но когда я пытаюсь выполнить ping-запрос Redis, он показывает эту ошибку:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

Примечание. Я попытался отключить брандмауэр и отредактировать файл conf, но все равно не могу проверить связь. Я использую macOS Sierra и homebrew версии 1.1.11.


person bufei    schedule 17.03.2017    source источник


Ответы (15)


После установки redis введите terminal:

redis-server

И Redis-Server будет запущен

person LuFFy    schedule 17.03.2017
comment
Однако как мне остановить прослушивание этого порта / хоста? - person Afolabi Olaoluwa Akinwumi; 11.01.2018
comment
@AfolabiOlaoluwaAkinwumi Обратитесь к Как мне остановить redis-server - person LuFFy; 11.01.2018
comment
Для окон из командной строки cd C:\Program Files\Redis, а затем redis-server - person Pradeep Kumar Prabaharan; 22.02.2018
comment
как постоянно запускать redis-server в фоновом режиме, я использую ubuntu @LuFFy - person AATHITH RAJENDRAN; 23.05.2019
comment
@AATHITHRAJENDRAN, проверьте этот ответ, я надеюсь, что это поможет - person LuFFy; 06.06.2019
comment
Это помогает сначала запустить brew install redis (кстати) - person mwilson; 06.09.2019
comment
Вы должны добавить путь к redis.exe после его установки. Вы можете добавить его из панели управления ›Система› Расширенные настройки системы ›Переменные среды› Путь ›Редактировать› Создать, а затем перезагрузите систему и наслаждайтесь. Мой путь Redis был: C: \ Program Files \ Redis - person Arash Yazdani; 20.08.2020
comment
установите & в конце команды, чтобы запустить ее в фоновом режиме - person Iman; 13.09.2020

Я нашел этот вопрос, пытаясь понять, почему я не могу подключиться к redis после его запуска через brew services start redis.

tl;dr

В зависимости от того, насколько свежая ваша машина или установлена, вам, вероятно, не хватает файла конфигурации или каталога для значений по умолчанию Redis.

  1. Вам нужен файл конфигурации в /usr/local/etc/redis.conf. Без этого файла redis-server не запустится. Вы можете скопировать файл конфигурации по умолчанию и изменить его оттуда с помощью

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Вам нужно /usr/local/var/db/redis/, чтобы существовать. Вы можете легко сделать это с помощью

    mkdir -p /usr/local/var/db/redis
    

Наконец, просто перезапустите redis с brew services restart redis.

Как вы это узнали !?

Я потратил много времени, пытаясь выяснить, не использует ли redis значения по умолчанию через homebrew и на каком порту он был. Службы вводили в заблуждение, потому что даже если redis-server на самом деле не был запущен, brew services list все равно отображал redis как "запущенный". Лучше всего использовать brew services --verbose start redis, который покажет вам, что файл журнала находится по адресу /usr/local/var/log/redis.log. Заглянув туда, я нашел дымящийся пистолет (ы)

Fatal error, can't open config file '/usr/local/etc/redis.conf'

or

Can't chdir to '/usr/local/var/db/redis/': No such file or directory

К счастью, журнал сделал решение выше очевидным.

Разве я не могу просто запустить redis-server?

Вы, конечно, можете. Если вы запустите redis-server &, он просто займется терминалом или иногда прерывает работу вашего терминала. Также он поместит dump.rdb в любой каталог, в котором вы его запускаете (pwd). Меня раздражало удаление файла или игнорирование его в git, поэтому я решил, что позволю brew выполнять работу с сервисами.

person Aaron    schedule 10.04.2017
comment
спасибо, это решило мою проблему в проекте laravel, где я получал отказ в соединении в строке 155 abstractconnection.php - person luckyguy73; 25.03.2018
comment
У меня тоже была ошибка в строке 155 abstractconnection.php! Сумасшедший. - person Kevin Gagnon; 28.06.2018
comment
Начать с многословия помогло мне. У меня возникла проблема с redis.conf. Спасибо - person SangamAngre; 26.03.2019
comment
brew services restart redis был для меня ключевым моментом, все остальные файлы conf и т. Д. Были настроены правильно - у службы явно были проблемы! - person jmcgrory; 04.09.2020

Если после установки вам нужно постоянно запускать redis, просто введите терминал:

redis-server &

Запуск Redis с использованием выскочки в Ubuntu

Я пытался понять, как настраивать системы с нуля на Ubuntu. Я только что установил redis на приставку, и вот как я это сделал, и кое-что, на что нужно обратить внимание.

Установить:

sudo apt-get install redis-server

Это создаст redis пользователя и установит для него init.d скрипт. Поскольку upstart теперь заменяет использование init.d, я полагаю, мне следует преобразовать его для запуска с использованием upstart.

Чтобы отключить сценарий init.d по умолчанию для redis:

sudo update-rc.d redis-server disable

Затем создайте /etc/init/redis-server.conf с помощью следующего скрипта:

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

respawn

Что это за сценарий для upstart, чтобы знать, какую команду запустить, чтобы запустить процесс. Последняя строка также указывает upstart продолжать попытки возродиться, если он умрет.

Одна вещь, которую мне пришлось изменить в /etc/redis/redis.conf, - это daemonize yes на daemonize no. Что произойдет, если вы не измените его, тогда redis-server будет разветвляться и демонизировать себя, а родительский процесс уйдет. Когда это происходит, upstart думает, что процесс умер / остановлен, и вы не сможете контролировать процесс изнутри upstart.

Теперь вы можете использовать следующие команды для управления вашим redis-server:

sudo start redis-server
sudo restart redis-server
sudo stop redis-server

Надеюсь, это было полезно!

person mySun    schedule 11.04.2018

Эта работа для меня:

sudo service redis-server start
person Zahra Badri    schedule 26.02.2020
comment
это все еще работает на ubuntu 16.04 и redis 6.0.6, отлично - person salimsaid; 19.10.2020

Это лучший способ подключиться к вашему Redis.

Сначала проверьте IP-адрес сервера Redis следующим образом.

ps -ef | grep redis

В результате получается что-то вроде «redis 1184 1 0 .... / usr / bin / redis-server 172.x.x.x: 6379.

А затем вы можете подключиться к redis с опцией -h (hostname), как это.

Redis-cli -h 172.x.x.x

person jihyun    schedule 28.11.2018

Я застрял на этом надолго. После многих попыток я смог правильно его настроить.

Причины появления ошибки могут быть разные. Я пытаюсь найти причину и решение, чтобы выйти из этой ситуации. Убедитесь, что вы правильно установили redis-server.

  1. 6379 Port не допускается брандмауэром ufw.

    Решение: введите следующую команду sudo ufw allow 6379

  2. Проблема может быть связана с разрешением redis пользователя. Возможно, у пользователя redis нет разрешения на изменение необходимых redis каталогов. У пользователя redis должны быть разрешения в следующих каталогах:

    • /var/lib/redis
    • /var/log/redis
    • /run/redis
    • /etc/redis

    Чтобы предоставить пользователю redis разрешение владельца, введите следующие команды:

    • sudo chown -R redis:redis /var/lib/redis
    • sudo chown -R redis:redis /var/log/redis
    • sudo chown -R redis:redis /run/redis
    • sudo chown -R redis:redis /etc/redis.

    Теперь перезапустите redis-server следующей командой:

    sudo systemctl restart redis-server

Надеюсь, это будет кому-то полезно.

person Farid Chowdhury    schedule 08.12.2020

Сначала вам нужно запустить / запустить все узлы Redis, используя команду ниже, один за другим для всех файлов conf. @ Примечание: если вы настраиваете кластер, у вас должно быть 6 узлов, 3 будут главными, а 3 - подчиненными. Redis-cli автоматически выберет главный и подчиненный из 6 узлов с помощью команды --cluster, как показано в моих командах ниже .

[xxxxx@localhost redis-stable]$ redis-server xxxx.conf 

затем беги

[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

вывод выше должен быть таким:

    >>> Performing hash slots allocation on 6 nodes...

Второй способ настроить все автоматически: вы можете использовать сценарии utils / create-cluster, чтобы настроить все для вас, например, запуск всех узлов, создание кластера, за которым вы следуете https://redis.io/topics/cluster-tutorial

Спасибо

person Sanjay    schedule 11.01.2019

Попробуй это :

sudo service redis-server restart
person Jhune Carlo Trogelio    schedule 04.05.2020
comment
Я использую Windows WSL Ubuntu и постоянно получаю ошибки в моем терминале. npm ERR! код ELIFECYCLE npm ERR! errno 1 Так что перепробовал все сверху, не работает особенно в винде. Вот почему попытался перезапустить службу Redis в Ubuntu, и все работает отлично! Это все. - person Jhune Carlo Trogelio; 06.05.2020

В моем случае это был пароль, который содержал некоторые символы типа ', после его изменения сервер запустился без проблем.

person Talu    schedule 28.01.2018

Ошибка при подключении Redis к Apple Silicon (Macbook Pro M1 - декабрь 2020 г.), вам нужно просто знать 2 вещи:

  1. Запустите redis-server с помощью sudo, чтобы удалить ошибку запуска сервера.

shell% sudo redis-server

  1. Для запуска его в качестве демона службы он позволит вам работать в фоновом режиме.

shell% sudo redis-server --daemonize yes

Подтвердите, используя следующие шаги: shell% redis-cli ping

Надеюсь, это поможет всем пользователям Macbook Pro M1, которые действительно обеспокоены отсутствием документации по этому поводу.

person moronkreacionz    schedule 04.01.2021
comment
Это сработало для меня, спасибо. - person omatica; 18.03.2021

У меня была такая же проблема, потому что я использовал неправильный синтаксис в моем файле конфигурации. Я хотел добавить:

maxmemory-policy allkeys-lru

в мой файл конфигурации, но вместо этого только добавил:

allkeys-lru

что, очевидно, помешало Redis проанализировать файл конфигурации, что, в свою очередь, не позволило мне подключиться через cli. Исправление этого синтаксиса позволило мне подключиться к Redis.

person duhaime    schedule 18.08.2017

Если бы эта проблема с homebrew MacOS, проблема заключалась в отсутствии какого-то разрешения в /usr/local/var/log каталоге см. Проблему здесь < / а>

Чтобы решить эту проблему, я удалил /usr/local/var/log и переустановил redis brew reinstall redis

person zetacu    schedule 01.12.2018

Как и Аарон, в моем случае brew services list утверждал, что redis работает, но это не так. В моем файле журнала на /usr/local/var/log/redis.log я нашел следующую информацию:

4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address

Оказывается, это вызвано следующей конфигурацией:

bind 127.0.0.1 ::1 192.168.161.1

что было необходимо для предоставления моей виртуальной машине VMWare Fusion доступа к серверу redis в macOS, хосту. Однако, если виртуальная машина не была запущена, из-за сбоя привязки redis не запускался вообще. Итак, запуск виртуальной машины решил проблему.

person Glorfindel    schedule 28.02.2020

Я использую Ubuntu 18.04. Я только что ввел эту команду в CMD sudo systemctl start redis-server, и теперь она работает. поэтому я считаю, что мой сервер Redis не был запущен, поэтому он показывает мне ошибку Не удалось подключиться к Redis на 127.0.0.1:6379: Соединение отказано.

person Rafiqul Islam    schedule 23.03.2021

В моем случае кто-то пришел и неправильно отредактировал файл redis.conf следующим образом:

bind 127.0.0.1 ::1
bind 192.168.1.7

когда действительно нужно было это (одна строка):

bind 127.0.0.1 ::1 192.168.1.7
person Fax    schedule 07.01.2021
comment
Однако это новая установка, поэтому я не думаю, что проблема в странном redis.conf. - person zypherman; 07.01.2021