Не вдалося підключитися до Redis за номером 127.0.0.1:6379: Відмовлено в з'єднанні з домашньою мовою


120

Використовуючи homebrew для встановлення Redis, але коли я намагаюся пінг Redis, він показує цю помилку:

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

Примітка. Я намагався вимкнути брандмауер та редагувати конф-файл, але все ще не можу пінг. Я використовую macOS Sierra та домашню версію 1.1.11

Відповіді:


281

Після встановлення redisвведіть terminal:

redis-server

І Redis-Server буде запущений


1
Однак як я не можу слухати цей порт / хост?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi Будь ласка, перевірте, як я можу зупинити redis-сервер
LuFFy

3
Для вікон із командного рядка, cd C:\Program Files\Redisа потім redis-server
Pradeep Kumar Prabaharan

2
як запускати redis-сервер постійно у фоновому режимі, я використовую ubuntu @LuFFy
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN, Перевір цю відповідь , я сподіваюсь, що це допоможе
LuFFy

37

Я знайшов це питання, намагаючись з'ясувати, чому я не можу підключитися до 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 не використовує параметри за замовчуванням через домашню мову та на якому порті. Послуги вводили в оману, оскільки, хоч redis-serverнасправді і не почали, brew services listвсе-таки відображатимуться як "розпочате". Найкращим підходом є використання, 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 виконувати роботу з сервісами.


спасибі, це вирішило мою проблему на проекті laravel, де я отримував з'єднання відмовився в Abstractconnection.php рядок 155
luckyguy73

У мене виникла помилка і в рядку 155. Божевільний.
Кевін Ганьон

Почніть з багатослівної справи, що зробила для мене річ. У мене виникла проблема в redis.conf. Спасибі
SangamAngre

18

Якщо після установки вам потрібно запустити 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

Сподіваюся, це було корисно!


9

Це кращий спосіб підключитися до Redis.

Спочатку перевірте ip адресу сервера redis, як це.

пс -еф | grep redis

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

І тоді ви можете підключитися до redis за допомогою такої опції -h (ім'я хоста).

redis-cli -h 172.xxx


2

У моєму випадку це був пароль, який містив деякі символи на зразок ', після його зміни сервер запустився без проблем.


1

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

maxmemory-policy allkeys-lru

до мого конфігураційного файлу, але замість цього лише додано:

allkeys-lru

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


1

Якщо проблема з homebrew MacOSпроблемою була якоюсь відсутністю дозволу в /usr/local/var/logкаталозі, дивіться проблему тут

Для того, щоб вирішити це, я видалив /usr/local/var/logі перевстановив redisbrew reinstall redis


1

Спочатку потрібно створити / запустити всі вузли redis за допомогою команди нижче, по одному для всіх файлів конф. @ Примітка: якщо ви налаштовуєте кластер, тоді у вас повинно бути 6 вузлів, 3 будуть головним і 3 будуть slave.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...

Другий спосіб налаштувати всі речі автоматично: ви можете використовувати утиліти / створення-кластерні сценарії, щоб налаштувати кожне, що вам подобається запускати всі вузли, створюючи кластер, ви читайте https://redis.io/topics/cluster-tutorial

Дякую



1

Так само, як і Аарон , в моєму випадку 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 не пускати взагалі . Тож запуск віртуальної машини вирішив проблему.


1

Спробуйте це :

sudo service redis-server restart

Я використовую Windows WSL Ubuntu і постійно отримує помилки в своєму терміналі. npm ERR! код ELIFECYCLE npm ERR! errno 1 Отож спробував усе на вершині, це не працює особливо в Windows. Ось чому спробував перезапустити сервіс redis на Ubuntu і працює чудово! Це все.
Jhune Carlo Trogelio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.