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.
这是万能的百度查出来的结果,千篇一律,但是leo觉得这样不太好,为什么要在错误的时候还要强制落地呢?这样会不会导致最终数据的不一致呢?于是乎leo通过错误提醒,please check redis logs for details about the error ,也就是说redis日志里面是有错误详情的,vim /etc/redis.conf之后,我们找到了log日志的位置,打开日志问题看到一段提示:
24680:C 30 Jan 09:53:01.046 # Failed opening the RDB file root (in server root dir /var/xxxx/xxx) for saving: Permission denied 18103 20549:M 30 Jan 09:53:01.146 # Background saving error 18104 20549:M 30 Jan 09:53:07.089 * 1 changes in 900 seconds. Saving... 18105 20549:M 30 Jan 09:53:07.089 * Background saving started by pid 24683 18106 24683:C 30 Jan 09:53:07.093 * DB saved on disk
哦,原来如此,leo发现了,是权限,那么就看redis是什么用户执行的,通过ps -ef | grep redis看到用户是redis用户,再去看看/var/xxx/xxx是什么用户权限,一看是root,这里leo比较小心,因为也不知道应该是重置用户角色还是说,777,这里leo选择了777,因为这样的风险相对于修改用户分组导致其它异常来说要小很多!!!