问题:

(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
 

问题原因

在Redis中两种持久化机制:分别为RDB和AOF。

RDB:

RDB其实就是把数据以快照的形式保存在磁盘上。什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。

AOF:

全量备份总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

 

从上述问题翻译看,大概意思就是不能将数据以快照方式持久化到磁盘。

但是redis的默认持久化方式是快照的方式,也就是RDB方式。

解决办法

将stop-writes-on-bgsave-error设置为no

redistributable翻译 redis error翻译_Redis

什么是bgsave——通过一张图来说明

redistributable翻译 redis error翻译_Redis_02

stop-writes-on-bgsave-error:默认为yes。默认以RDB为持久化方式,如果当数据持久化失败的时候,Redis会停止接收数据。这会让用户感觉到数据没有正确持久化到磁盘上。如果Redis重启了,那么没有被持久化的数据丢失,又需要重新接收新的数据。