在写入Redis (SET foo bar)期间,我得到以下错误:
MISCONF Redis被配置为保存RDB快照,但当前为 无法在磁盘上持久保存。可能修改数据集的命令是 禁用。有关错误的详细信息,请查看Redis日志。
基本上我理解的问题是,redis是不能在磁盘上保存数据,但不知道如何摆脱这个问题。
下面的问题也有同样的问题,它在很久以前就被抛弃了,没有答案,很可能没有尝试解决这个问题。
在写入Redis (SET foo bar)期间,我得到以下错误:
MISCONF Redis被配置为保存RDB快照,但当前为 无法在磁盘上持久保存。可能修改数据集的命令是 禁用。有关错误的详细信息,请查看Redis日志。
基本上我理解的问题是,redis是不能在磁盘上保存数据,但不知道如何摆脱这个问题。
下面的问题也有同样的问题,它在很久以前就被抛弃了,没有答案,很可能没有尝试解决这个问题。
当前回答
正如@Chris指出的,问题可能是低内存。当我们分配太多内存给MySQL (innodb_buffer_pool_size)时,我们就开始遇到这种情况。
为了确保有足够的内存用于Redis和其他服务,我们减少了MySQL上的innodb_buffer_pool_size。
其他回答
使用redis-cli,你可以阻止它尝试保存快照:
config set stop-writes-on-bgsave-error no
这是一个快速的解决方法,但是如果你关心使用它的数据,你应该检查一下为什么bgsave首先失败了。
我知道这个线程稍微老一些,但当我早些时候得到这个错误时,这里是为我工作的,因为我知道我没有接近内存限制-两个答案都在上面找到。
希望这能在将来帮助到需要的人。
检查CHMOD目录…发现符号符号不一样。CHMOD目录文件夹到755 Dbfilename权限很好,不需要更改 重启redis-server 参考redis-server.log,发现该错误是访问被拒绝的结果。
再次-不确定DIR文件夹的权限是如何改变的,但我假设CHMOD回到755并重新启动redis-server,因为我之后能够ping到redis服务器。
另外,需要注意的是,redis确实拥有dbfilename和DIR文件夹的所有权。
一个更永久的修复方法可能是查看/etc/redis/redis.conf中200-250行左右的rdb特性的设置,这不是redis 2中的一部分。x天。
值得注意的是
dir ./
可更改为
dir /home/someuser/redislogfiledirectory
或者您可以注释掉所有保存行,而不用担心持久性。(见/etc/redis/redis.conf中的注释)
还有,别忘了
service redis-server stop
service redis-server start
如果您正在运行MacOS,并且最近升级到Catalina,您可能需要按照本问题的建议运行brew服务重新启动redis。
在采取任何行动之前检查你的Redis日志。这个线程中的一些解决方案可能会删除你的Redis数据,所以要小心你在做什么。
在我的例子中,机器的内存快用完了。当主机上没有更多的空闲磁盘空间时,也会发生这种情况。