web-dev-qa-db-ja.com

127.0.0.1:6379にRedisに接続できませんでした:接続は自作で拒否されました

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

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

注:ファイアウォールをオフにしてconfファイルを編集することもできません。私はmacOS Sierraと自作バージョン1.1.11を使っています

70
bufei

redisをインストールした後、terminalから入力します。

redis-server

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

174
LuFFy

brew services start redis経由で起動した後になぜ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
    

最後にbrew services restart redisを付けてredisを再起動してください。

どうやってこれを見つけますか。

私はredisが自作を通してデフォルトを使用していなかったかどうか、そしてそれがどのポートにあったのかを把握しようとするのに多くの時間を浪費しました。 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でそれを無視しなければならないことに悩まされたので、私はサービスを使って作業をこなしてみましょうと考えました。

24
Aaron

あとでインストールする場合は、常にredisを実行する必要があります。端末に入力するだけです。

redis-server &

Ubuntuでupstartを使ってredisを実行する

私はUbuntu上でシステムを一からセットアップする方法を理解しようとしていました。私はredisをボックスにインストールしたところです。

インストールするには:

Sudo apt-get install redis-server

それはredisユーザーを作成し、それにinit.dスクリプトをインストールします。 upstartはinit.dを使用する代わりになるので、upstartを使用して実行するように変換する必要があります。

redisのデフォルトのinit.dスクリプトを無効にするには、次の手順を実行します。

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で変更しなければならなかったことの1つは、daemonize yesdaemonize noに変更することです。変更しないと、redis-serverが自分自身をforkしてデーモン化し、親プロセスが消えます。これが起こると、upstartはプロセスが死んだ/停止したと考え、あなたはupstart内からプロセスを制御することはできません。

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

Sudo start redis-server
Sudo restart redis-server
Sudo stop redis-server

これが役に立ったことを願っています!

7
mySun

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

最初に、このようにredisサーバーのIPアドレスを確認してください。

ps -ef | grep redis

結果は「redis 1184 1 0 ..../usr/bin/redis-server 172.x.x.x:6379のようなものです。

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

redis-cli -h 172.x.x.x

2
user4675117

私の場合は、パスワードを変更した後に'のような文字が含まれていたのですが、問題なくサーバーが起動しました。

1
Talu

homebrew MacOSに関する問題が/usr/local/var/logディレクトリで許可されていないというある種の許可がある場合 ここで問題を参照してください

それを解決するために、私は/usr/local/var/logを削除し、redis brew reinstall redisを再インストールします

0
zetacu

設定ファイルで不適切な構文を使用していたので、私はちょうど同じ問題を抱えていました。私は追加するつもりでした:

maxmemory-policy allkeys-lru

私の設定ファイルに、代わりに追加されました:

allkeys-lru

これは明らかにRedisが設定ファイルを解析するのを妨げ、それが今度は私がcliを通して接続するのを妨げました。この構文を修正することで、私はRedisに接続することができました。

0
duhaime

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

[[email protected] redis-stable]$ redis-server xxxx.conf 

それから走る

[[email protected] 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

ありがとう

0
Sanjay