Redis持久化问题 'MISCONF Redis is configured to save RDB snapshots, but is currently not able to ...'

Redis遇到了报错:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

从翻译上来看Redis被配置为保存RDB快照,但目前无法在磁盘上持久存储。

解决过程:

1、所以我上网查找解决办法,修改建议最多的是修改配置文件或者在redis-cli命令里面执行stop-writes-on-bgsave-error no

127.0.0.1:6379> config set stop-writes-on-bgsave-error no

我尝试了这样做并重启redis,确实好了。但是我翻译这个参数的意思是:停止写入bgsave错误,那么就是说没彻底解决问题,我又将配置改了回去,重新找寻解决办法。

 

2、首先想到的是写入权限会不会被同事动了,所以将redis目录和设置成了777。

chmod 777 redis
chmod 777 redis/dump.rdb

这可能是一小部分人的原因,但我的不是,修改后持久化还是失败。

 

3、百度得知另一种解决办法,修改系统参数。

/etc/sysctl.conf文件加入一行vm.overcommit_memory = 1或者执行

sysctl vm.overcommit_memory=1

但是我的问题依旧没有解决。

 

4、我又想到可能是redis写入的硬盘满了所以df -h查看了下使用空间。

经过查看后果然是硬盘使用空间不够了(图中我是处理后了),我就把所有的日志删除了,修改了日志只保留七天的策略。

 

顺便附上Redis持久化的RDB和AOF两种机制图,方便大家了解执行机制,在选择时能更适合自己。

AOF:

RDB:

 

总结:至此我的问题解决了,但是整个过程用了将近两个小时。事后回想,既然上来想到了执行权限的问题,为什么会最后想到空间满了写不进去的问题。所以今后在遇到写入失败且近期没有进行过操作的情况下,首先应该执行df -h查看空间使用情况,记下来以儆效尤!

转载请标注原文地址:https://blog.csdn.net/weixin_41818665/article/details/105658114 

大国的博客

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值