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

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

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

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

21 ответ

Решение

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

redis-server

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

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

ТЛ; др

В зависимости от того, насколько свежа ваша машина или установка, вам, скорее всего, не хватает файла конфигурации или каталога по умолчанию для 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, поэтому я решил, что позволю brew работать со службами.

      redis-server --daemonize yes

Я решил эту проблему, выполнив эту команду.

Если после установки вам нужно запустить 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

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

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

sudo service redis-server start

Дата: декабрь 2021 г.

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

1 Проверка: Redis-Server не запущен

      redis-server

Also to run Redis in the background, the following command could be used.

redis-server --daemonize yes

2. Проверьте: Ограничение брандмауэра

      sudo ufw status (inactive)
sudo ufw active (for making active it might disable ssh when first time active. So enable port 22 to access ssh.)
sudo ufw allow 22
sudo ufw allow 6379

3. Проверьте: Использование ресурсов

      ps -aux | grep redis

4. Ограничение настройки конфигурации

      sudo vi /etc/redis/redis.conf.

Прокомментируйте следующую строку.

      # bind 127.0.0.1 ::1

Примечание. Злоумышленникам будет сложнее делать запросы или получать доступ к вашему серверу. Убедитесь, что вы привязаны к правильному IP-адресу сети.

Надеюсь, это поможет кому-то. Для получения дополнительной информации прочитайте следующую статью.

https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/

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

sudo service redis-server restart

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

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

ps -ef | Греп Редис

Результат типа " redis 1184 1 0 0.... /usr/bin/redis-server 172.xxx:6379

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

redis-cli -h 172.xxx

Я нашел решение на github в своем случае, когда я попробовал cmd redis-cli, а затем выдал «Не удалось подключиться к Redis по адресу 127.0.0.1:6379: соединение отклонено»

причина: Стоит отметить, что если вы работаете в рабочей среде, возможно, вам захочется запустить Redis в фоновом режиме.

вы можете попробовать cmd ниже, чтобы решить проблему

redis-server --daemonize да

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

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

  1. 6379 Port не разрешено брандмауэром ufw.

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

  2. Проблема может быть связана с разрешением пользователя. Возможно, у пользователя 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

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

Ошибка при подключении 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, которые действительно обеспокоены отсутствием документации по этому поводу.

На самом деле вам нужно запустить «redis-server &» после установки, чтобы запустить службу, когда вы запускаете только «redis-server», служба работает в неотсоединенном режиме. акцент на "&"

Сначала вам нужно запустить / запустить все узлы 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...

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

Спасибо

Я пытался подключить свой Redis, работающий в wsl2, из кода vs, работающего в Windows.

Я перечислил, что у меня сработало, и порядок, в котором я выполнял эти действия:

      1) sudo ufw allow 6379
2) Update redis.conf to bind 127.0.0.1 ::1 192.168.1.7
3) sudo service redis-server restart

ПРИМЕЧАНИЕ. Я впервые установил Redis на wsl2 и еще не выполнил ни одной команды.

Сообщите мне, если это сработает для вас. Спасибо.

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

maxmemory-policy allkeys-lru

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

allkeys-lru

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

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

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

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

Как и Аарон, в моем случае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 не пускать вообще. Итак, запуск виртуальной машины решил проблему.

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

Редис для Mac:

1- brew установить redis
2- brew services запустить redis
3- redis-cli ping

      $ brew services start redis 
$ brew services stop redis
$ brew services restart redis

Варианты автозапуска обеда:

      $ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
# autostart activate
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# autostart deactivate
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

Путь по умолчанию к конфигурации Redis: /usr/local/etc/redis.conf

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

      bind 127.0.0.1 ::1
bind 192.168.1.7

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

      bind 127.0.0.1 ::1 192.168.1.7
Другие вопросы по тегам