Не удалось подключиться к 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.
Вам нужен файл конфигурации на
/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 работать со службами.
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
Надеюсь, это было полезно!
Дата: декабрь 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/
Это лучший способ подключиться к вашему 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 да
Я застрял на этом надолго. После множества попыток я смог правильно его настроить.
Причины появления ошибки могут быть разные. Я пытаюсь найти причину и решение, чтобы выйти из этой ситуации. Убедитесь, что вы установили правильно.
6379 Port
не разрешено брандмауэром ufw.Решение : введите следующую команду
sudo ufw allow 6379
Проблема может быть связана с разрешением пользователя. Возможно, у пользователя 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 вещи:
- Запустите redis-server с помощью sudo, чтобы удалить ошибку запуска сервера.
shell% sudo redis-server
- Для запуска его как службы «демонизация» он позволит вам работать в фоновом режиме.
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