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

5 ответов


после установки redis, введите from terminal:

redis-server

и Redis-сервер будет запущен


я нашел этот вопрос, пытаясь выяснить, почему я не мог подключиться к 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'

или

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

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

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

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


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

redis-server &

запуск redis с помощью upstart на Ubuntu

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

установка:

sudo apt-get install redis-server

это создаст redis пользователь и установить init.d сценарий для него. С upstart теперь является заменой для использования init.d, Я полагаю, что должен преобразовать его в run с помощью 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 to daemonize no. Что произойдет, если вы не измените это redis-server будет вилять и демонизировать себя, и родительский процесс уходит. Когда это происходит, upstart думает, что процесс умер / остановился, и у вас не будет контроля над процессом изнутри upstart.

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

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

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


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


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

maxmemory-policy allkeys-lru

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

allkeys-lru

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