127.0.0.1:6379でRedisに接続できませんでした:Homebrewで接続が拒否されました


120

Homebrewを使用してRedisをインストールしますが、Redisにpingしようとすると、次のエラーが表示されます。

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

注: ファイアウォールをオフにしてconfファイルを編集しようとしましたが、まだpingできません。macOS Sierraと自作バージョン1.1.11を使用しています

回答:


281

インストール後redis、次のように入力しterminalます。

redis-server

そしてRedis-Serverが起動されます


1
しかし、そのポート/ホストをリッスンしないようにするにはどうすればよいですか?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumiを参照してくださいどうすればredis-serverを停止できますか
LuFFy

3
コマンドプロンプトからのウィンドウの cd C:\Program Files\Redis場合redis-server
Pradeep Kumar Prabaharan、2018

2
バックグラウンドで継続的にredis-serverを実行する方法。ubuntu@LuFFyを使用しています
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN、この回答をチェックしてください、それが役に立てば幸い
LuFFy

37

経由で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 listredisが「開始済み」と表示されるため、サービスは誤解を招くものでした。最善の方法は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にサービスでの作業を行わせると考えました。


おかげで、これにより、arravelプロジェクトでの問題が解決されました。abstractconnection.phpの155行目で接続が拒否されました
luckyguy73 '25年

abstractconnection.phpの155行目でもエラーが発生していました。クレイジー。
Kevin Gagnon

冗長から始めて、私のために物事を行いました。redis.confに問題がありました。ありがとう
SangamAngre

18

インストール後redis、常に実行する必要がある場合は、ターミナルに入力するだけです:

redis-server &

Ubuntuでupstartを使用してredisを実行する

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.confdaemonize yesdaemonize noです。変更しないとどうなりますか?redis-serverフォークしてデーモン化し、親プロセスはなくなります。これが発生するupstartと、プロセスが停止したか停止したと見なされ、プロセスを内部から制御できなくなります。upstart

これで、次のコマンドを使用してを制御できますredis-server

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

これがお役に立てば幸いです!


9

それはあなたのredisに接続するより良い方法です。

最初に、このようなredisサーバーのIPアドレスを確認します。

ps -ef | grep redis

結果は "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

そして、次のように-h(hostname)オプションでredisに接続できます。

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、redisを再インストールしましたbrew reinstall redis


1

まず、以下のコマンドを使用して、すべてのconfファイルに対して1つずつ、すべてのredisノードを起動/開始する必要があります。@注:クラスターを設定している場合、6つのノードが必要です。3つがマスターで3つがスレーブです。redis-cliは、以下のコマンドに示すように、-clusterコマンドを使用して6つのノードからマスターとスレーブを自動的に選択します。

[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

ありがとう



1

アーロンのように、私の場合、brew services listredisは実行されていると主張しましたが、実行されませんでした。のログファイルに次の情報が見つかりました/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仮想マシンがホストであるmacOSのredisサーバーにアクセスできるようにするために必要でした。ただし、仮想マシンが起動していなかった場合、このバインドの失敗により、redisがまったく起動しなくなりまし。したがって、仮想マシンを起動すると問題が解決しました。


1

これを試して :

sudo service redis-server restart

Windows WSL Ubuntuを使用していますが、ターミナルでエラーが発生し続けます。npm ERR!コードELIFECYCLE npm ERR!errno 1そのため、すべてを上から試しましたが、特にWindowsでは機能しません。そのため、Ubuntuでredisサービスを再起動してみたところ、問題なく動作しました。それで全部です。
Jhune Carlo Trogelio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.