498

Redis ( SET foo bar) への書き込み中に、次のエラーが発生します。

MISCONF Redis は RDB スナップショットを保存するように構成されていますが、現在ディスク上に永続化することはできません。データ セットを変更する可能性のあるコマンドは無効になっています。エラーの詳細については、Redis ログを確認してください。

基本的に、問題はredisがディスクにデータを保存できないことだと理解していますが、問題を解決する方法がわかりません。

また、次の質問にも同じ問題があります。回答がなく、おそらく問題を解決しようとする試みもなく、ずっと前に放棄されています。

4

35 に答える 35

455

を使用redis-cliすると、スナップショットを保存しようとして停止できます。

config set stop-writes-on-bgsave-error no

これは簡単な回避策ですが、使用しているデータに関心がある場合は、最初に bgsave が失敗した理由を確認する必要があります。

于 2014-01-31T15:54:25.293 に答える
25

問題を確認していただきありがとうございます。明らかにエラーは で発生しましたbgsave

私にとってconfig set stop-writes-on-bgsave-error noは、シェルを入力して Redis を再起動すると問題が解決しました。

于 2013-10-25T04:45:22.507 に答える
8

より恒久的な修正は、/etc/redis/redis.conf の 200 ~ 250 行あたりを調べることです。rdb 機能の設定がありますが、これは 2.x の時代には redis の一部ではありませんでした。

特に

dir ./

に変更できます

dir /home/someuser/redislogfiledirectory

または、すべての保存行をコメントアウトして、永続性について心配する必要はありません。(/etc/redis/redis.conf のコメントを参照)

また、忘れないでください

service redis-server stop
service redis-server start
于 2016-09-19T04:26:50.503 に答える
7

私のため

config set stop-writes-on-bgsave-error no

Macをリロードすると、動作します

于 2019-08-15T02:33:06.513 に答える
4

FWIW、私はこれに遭遇しました。解決策は、単にスワップファイルをボックスに追加することでした。私はこの方法を使用しました: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

于 2015-02-12T16:08:33.993 に答える
4

このスレッドが少し古いことは知っていますが、以前にこのエラーが発生したときに、メモリ制限に近づいていないことを知っていたので、どちらの答えも上に見つかりました。

うまくいけば、これが将来必要になった場合に誰かを助けることができます。

  1. dir フォルダーの CHMOD を確認しました... どういうわけか記号表記が異なっていることがわかりました。CHMOD dir フォルダーを 755 に
  2. dbfilename パーミッションは良好で、変更は必要ありませんでした
  3. redisサーバーを再起動しました
  4. (最初にこれを行うべきでしたが、まあまあ) redis-server.log を参照し、エラーがアクセスが拒否された結果であることがわかりました。

再び-DIRフォルダーのアクセス許可がどのように変更されたかは不明ですが、CHMODを755に戻し、redis-serverを再起動すると、後でredisサーバーにpingを実行できたので、それが処理されたと想定しています。

また、redis には dbfilename と DIR フォルダーの所有権がありました。

于 2020-06-21T06:14:12.130 に答える
3

最終的に非常に多くのSOの質問に頭を悩ませた後-私にとって@Axel Adventoの答えは機能しましたが、追加の手順はほとんどありませんでした-私はまだ許可の問題に直面していました。
ユーザーを に切り替えredis、そのホーム ディレクトリに新しいディレクトリを作成し、それを redis のディレクトリとして設定する必要がありました。

sudo su - redis -s /bin/bash
mkdir redis_dir
redis-cli CONFIG SET dir $(realpath redis_dir)
exit # to logout from redis user (optional)
于 2020-05-02T05:21:41.227 に答える