Redis教程

redis异常 Commands that may modify the data set are disabled, because this instance is

本文主要是介绍redis异常 Commands that may modify the data set are disabled, because this instance is,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

项目场景:

使用redis存储验证码

问题描述:

在这里插入图片描述

BUG:本来以为是一个安稳的国庆节,没想到部署的项目还是出了问题
原始的异常代码:

Error in execution nested exception is 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 f RDB snapshotting fails (stop-writes
 -on-bgsave-error option). Please check the Redis logs for
 details about the RDB error

大致翻译一下:

MISCONF Redis配置为保存RDB快照,但目前无法在磁盘上持久化。可能修改数据集的命令被禁用,因为该实例被配置为在RDB快照失败时报告错误(stop-write -on-bgsave-error选项)。请检查Redis的日志RDB错误的详细信息.


原因分析:

提示:主要出现在这个redis上,我的redis 是使用宝塔linux在宝塔商店安装的,平时使用连接都没有问题,在隔一段时间之后,就会出现这种异常,导致使用redis 的服务都受到影响


解决方案:

根据它的提示,我们需要先查看一下redis的日志,那么问题来了日志保存在哪里呢?

  1. 打开配置文件,查看日志配置目录(搜索 logfile 大概在173行)
    在这里插入图片描述

  2. 我们看到配置文件在"/www/server/redis/redis.log"目录,找到这个目录进入查看一下日志,找到最近的异常信息

cat redis.log

在这里插入图片描述
看到这里这个异常问题已经很明了了,“打开RDB文件web(在服务器根目录/etc/cron.d)保存失败:权限被拒绝”,博主怀疑是执行某条任务到该目录时没有执行权限.
解决办法执行命令:

chmod 777 /etc/cron.d

简单粗暴,之后应该这个异常问题就不会出现了,其实这个异常问题出现过好几次每次的解决办法都是重启redis,解决临时问题治标不治本大家一定要引以为戒!!!

这篇关于redis异常 Commands that may modify the data set are disabled, because this instance is的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!