Redisに書き込み権限があるディレクトリでRedisサーバーを起動します。
上記の答えは間違いなくあなたの問題を解決しますが、実際に起こっていることはここにあります:
rdb.dump
ファイルを保存するデフォルトの場所は./
(現在のディレクトリを示します)です。これはredis.conf
ファイルで確認できます。したがって、redisサーバーを起動するディレクトリは、dump.rdb
ファイルが作成および更新される場所です。
dump.rdb
ファイルを作成するための適切な権限がredisにないディレクトリでredisサーバーの実行を開始したようです。
さらに悪いことに、redisは、データを適切に保存するためのrdbファイルを作成できるようになるまで、サーバーをシャットダウンすることもおそらく許可しません。
この問題を解決redis-cli
するには、dir
キーを使用してアクティブなredisクライアント環境に移動し、キーを更新して、その値をプロジェクトフォルダーまたは非ルートに保存する権限があるフォルダーに設定する必要があります。次に、実行BGSAVE
してdump.rdb
ファイルの作成を呼び出します。
CONFIG SET dir "/hardcoded/path/to/your/project/folder"
BGSAVE
(ここで、サーバーを起動したディレクトリにdump.rdbファイルを保存する必要がある場合は、redisが書き込みできるように、ディレクトリのアクセス許可を変更する必要があります。その方法については、stackoverflowを検索できます。 )。
これで、redisサーバーをシャットダウンできるはずです。パスをハードコーディングしたことに注意してください。ハードコーディングはめったに良い習慣ではないので、プロジェクトディレクトリからredisサーバーを起動し、dir key back to
。/ ` を変更することを強くお勧めします。
CONFIG SET dir "./"
BGSAVE
そうすれば、別のプロジェクトでredisが必要になったときに、ハードコーディングされたパスのプロジェクトディレクトリではなく、現在のプロジェクトのディレクトリにダンプファイルが作成されます。