50

redis のデータを変更するコマンドを実行するたびに、次のエラーが発生します。

Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
Commands that may modify the data set are disabled. 
Please check Redis logs for details about the error.

Macでbrewを使用してredisをインストールしました。redis-server が情報を記録するログ ファイルの場所を取得するにはどうすればよいですか。redis conf を探してみました。ファイルですが、それも見つかりませんでした。

[1] redis conf ファイル [2] redis ログ ファイルのデフォルトの場所はどこですか。

上記のエラーを取り除き、redis のデータを変更するコマンドを実行できるようにするにはどうすればよいですか。

4

7 に答える 7

26

brew でインストールすると、ログファイルは stdout に設定されます。/usr/local/etc/redis.confログファイルを編集して別のものに変更する必要があります。私は次のように設定しました:

logfile /var/log/redis-server.log

また、redis を実行するユーザーがログファイルへの書き込み権限を持っていることを確認します。そうしないと、redis が完全に起動できなくなります。次に、redis を再起動します。

brew services restart redis

再起動後、エラーがログに表示されるまでしばらく時間がかかります。これは、redis が時間指定のフラッシュに失敗した後に発生するためです。次のようなものが表示されるはずです。

[7051] 29 Dec 02:37:47.164 # Background saving error
[7051] 29 Dec 02:37:53.009 * 10 changes in 300 seconds. Saving...
[7051] 29 Dec 02:37:53.010 * Background saving started by pid 7274
[7274] 29 Dec 02:37:53.010 # Failed opening .rdb for saving: Permission denied

brew のインストール後、保存しようとしますが/usr/local/var/db/redis/、redis はおそらく root ではなく現在のユーザーとして実行されているため、書き込みできません。redis がディレクトリへの書き込み権限を取得すると、ログファイルには次のように表示されます。

[7051] 29 Dec 03:08:59.098 * 1 changes in 900 seconds. Saving...
[7051] 29 Dec 03:08:59.098 * Background saving started by pid 8833
[8833] 29 Dec 03:08:59.099 * DB saved on disk
[7051] 29 Dec 03:08:59.200 * Background saving terminated with success

エラーは発生しstop-writes-on-bgsave-errorなくなります。

于 2013-12-28T18:36:58.913 に答える
4

私の場合、以下の手順でこの問題を解決しました

原因 :デフォルトでは、redis ストア データ @ ./ であり、redis が redis ユーザーで実行されている場合、これは、redis が ./ ファイルにデータを書き込むことができないことを意味し、上記のエラーに直面します。

解決策: ステップ 1 (redis が書き込み操作を実行できる有効な場所を入力してください) root@fpe:/var/lib/redis# vim /etc/redis/redis.conf

dir /var/lib/redis # (この場所には、redis ユーザーが書き込む権限が必要です)

ステップ # 2 (redis cli に接続し、ディレクトリをマップして、変数の下に書き込み、発行します)

127.0.0.1:6379> CONFIG SET dir "/var/lib/redis"

127.0.0.1:6379> BGSAVE -

これにより、redis はダンプ ファイルにデータを書き込むことができます。

于 2017-10-18T12:02:11.670 に答える
1

これは通常、アクセス許可が制限されているためです。私の場合、書き込みオプションが無効になっているredisです。

シェルで実行redis-cliしてから、次のコマンドを実行できます。

set stop-writes-on-bgsave-error yes
于 2013-12-19T03:28:43.033 に答える