MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk

发现问题

前两天部署一个程序的时候,现场运维人员反馈程序启不来。日志显示错误如下:

...
nested exception is io.lettuce.core.RedisCommandExecutionException: 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写数据的地方报错了。错误显示根据redis配置需要将数据持久化到RDB快照中,但是当前无法持久化到磁盘上。根据stop-writes-on-bgsave-error配置项的配置,停止修改数据。

分析问题

众所周知,redis有两种持久化方式:AOF、RDB。RDB方式是指定时间内数据变动达到指定的次数就持久化到磁盘中。所以Redis配置文件中会配置保存的文件路径、文件名称、保存策略等,而配置项stop-writes-on-bgsave-error表示如果最近一次持久化时出错了,就停止往Redis中写数据,这样可以尽量保持数据一致。所以网上有人说把stop-writes-on-bgsave-error配置项的值改为false,但是这样并没有真正解决问题。此时应检查Redis日志、磁盘空间、可用内存等信息,来找到没有持久化成功的原因。

解决问题

经现场人员排查后得知是那台服务器盘空间满了,清理完磁盘后再启动就不报错了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值