自作を使用してRedisをインストールしますが、Redisにpingを実行しようとすると、このエラーが表示されます。
Could not connect to Redis at 127.0.0.1:6379: Connection refused
注:ファイアウォールをオフにしてconfファイルを編集することもできません。私はmacOS Sierraと自作バージョン1.1.11を使っています
redis
をインストールした後、terminal
から入力します。
redis-server
そしてRedis-Serverが起動されます
brew services start redis
経由で起動した後になぜ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
最後に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でそれを無視しなければならないことに悩まされたので、私はサービスを使って作業をこなしてみましょうと考えました。
あとでインストールする場合は、常に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 yes
をdaemonize no
に変更することです。変更しないと、redis-server
が自分自身をforkしてデーモン化し、親プロセスが消えます。これが起こると、upstart
はプロセスが死んだ/停止したと考え、あなたはupstart
内からプロセスを制御することはできません。
これで、以下のコマンドを使用してredis-server
を制御できます。
Sudo start redis-server
Sudo restart redis-server
Sudo stop redis-server
これが役に立ったことを願っています!
それはあなたの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
私の場合は、パスワードを変更した後に'
のような文字が含まれていたのですが、問題なくサーバーが起動しました。
homebrew MacOS
に関する問題が/usr/local/var/log
ディレクトリで許可されていないというある種の許可がある場合 ここで問題を参照してください
それを解決するために、私は/usr/local/var/log
を削除し、redis brew reinstall redis
を再インストールします
設定ファイルで不適切な構文を使用していたので、私はちょうど同じ問題を抱えていました。私は追加するつもりでした:
maxmemory-policy allkeys-lru
私の設定ファイルに、代わりに追加されました:
allkeys-lru
これは明らかにRedisが設定ファイルを解析するのを妨げ、それが今度は私がcliを通して接続するのを妨げました。この構文を修正することで、私はRedisに接続することができました。
まず、下記のコマンドを使ってすべての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
ありがとう