Подтвердить что ты не робот

Не удалось подключиться к 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

4b9b3361

Ответ 1

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

redis-server

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

Ответ 2

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

TL;DR

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

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

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  • Вам нужно /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'

или

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

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

Не могу ли я запустить redis-server?

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

Ответ 3

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

redis-server &

Запуск redis с использованием upstart на 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

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

Ответ 4

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

Ответ 5

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

maxmemory-policy allkeys-lru

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

allkeys-lru

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

Ответ 6

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

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

ps -ef | grep redis

Результатом является вид "redis 1184 1 0..../usr/bin/redis-server 172.xxx:6379

А затем вы можете подключиться к redis с параметром -h (имя хоста), подобным этому.

redis-cli -h 172.xxx

Ответ 7

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

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

Ответ 8

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

[[email protected] redis-stable]$ redis-server xxxx.conf 

затем беги

[[email protected] 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...

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

Спасибо