PHPでRedisを使っていたところ、突然タイトルのようなメッセージが表示されてredisが死んだ。
どうやらディスク容量がいっぱいになったりとかでsaveがこけると起きるらしい。
一旦以下コマンドで回避できるようなので対応したところ直った。
$ redis-cli
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
ただしこれは、ディスク異常でエラーが発生しても無視するという設定なので、だいぶよろしくない。
さらに調べて見たところ、以下の対応の方がよさそう
一時対応の場合はredis-cliで
$ redis-cli
127.0.0.1:6379> CONFIG SET dir /どこか/ディスクに/余裕が/あるところ/
127.0.0.1:6379> CONFIG SET dbfilename dump.rdb
恒久対応の場合はredis.confのdirを書き換える
/etc/redis.conf
# デフォルトはコメントアウト
# dir ./
dir /どこか/ディスクに/余裕が/あるところ/
これでとりあえず復活した模様!
やったことは、壊れたrdbファイルを捨てて、余裕があるディスクに新しいrdbファイルを作った、みたいなことなので、これはこれで他にやりようがあるかもしれない、、、