首页 > 数据库 >redis集群报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist

redis集群报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist

时间:2023-06-30 11:44:06浏览次数:44  
标签:MISCONF 快照 redis writes Redis 报错 RDB 失败 disk

之前在x86架构的服务器部署redis集群,未遇到题中问题;然而在ARM架构的服务器部署redis集群,第一次遇到如此问题。虽然问题已经解决,但不清楚问题的具体原因,在此做个记录。


性能测试过程中,通过pinpoint捕捉到如下报错:

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-write...(618)

这个错误通常表示Redis配置了保存RDB快照,但当前无法将快照持久化到磁盘上。


解决办法如下:

方法一:通过命令行修改

redis-cli登入redis,输入命令:config set stop-writes-on-bgsave-error no

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

方法二:通过配置文件修改

修改redis.conf配置文件,将stop-writes-on-bgsave-error 的参数yes改为no。随后重启redis服务。

 230 # However if you have setup your proper monitoring of the Redis server
 231 # and persistence, you may want to disable this feature so that Redis will
 232 # continue to work as usual even if there are problems with disk,
 233 # permissions, and so forth.
 234 stop-writes-on-bgsave-error yes

问题原因分析:

就上述【方法二】中的redis配置文件信息,咨询chatGPT,给出如下回复:

230号行:然而,如果你已经正确设置了对Redis服务器的监控和持久化,你可能希望禁用这个特性,以便即使出现磁盘、权限等问题,Redis仍然可以正常工作。

231号行:该行是一个注释,提醒用户可以禁用Redis报告错误的功能,因为在正确设置了监控和持久化的情况下,Redis可以继续正常工作,即使磁盘或权限等存在问题。

232号行:注释说明了禁用此功能后的效果,即Redis将继续以往的工作方式运行,即使在磁盘、权限等方面存在问题。

233号行:该行是一个注释,提醒用户可能还有其他类似的问题。

234号行:stop-writes-on-bgsave-error yes表示当RDB快照失败时,停止写入命令。这意味着如果RDB快照操作失败,Redis会禁止执行可能修改数据集的命令。

进一步咨询chatGPT,什么情况下会出现redis RDB快照失败的情况?继续给出如下回复:

Redis RDB快照可能会失败的几种情况包括:

磁盘空间不足:当Redis尝试将RDB快照写入磁盘时,如果磁盘空间不足以容纳快照文件,就会导致快照失败。

权限问题:如果Redis进程没有足够的权限将RDB快照文件写入指定的目录,就会导致快照失败。确保Redis进程具有正确的权限来访问和写入目标目录。

磁盘故障:如果磁盘发生错误或损坏,可能会导致RDB快照无法成功写入磁盘,从而导致快照失败。

系统错误或中断:在执行RDB快照过程中,如果发生了系统错误或中断(如服务器崩溃、断电等),可能会导致快照失败。

内存不足:如果Redis实例的内存使用达到上限,可能会导致RDB快照失败。在执行快照之前,确保Redis实例有足够的可用内存来完成快照操作。

其他配置问题:一些配置问题,如错误的保存频率、目录配置错误等,也可能导致RDB快照失败。

需要注意的是,RDB快照失败不会导致数据丢失,因为Redis仍然可以继续运行并将数据保存在内存中。但是,如果持久化是关键需求,建议及时解决RDB快照失败的问题以确保数据的持久性和可靠性。

就此推测,应该是由于上述的某原因导致redis RDB快照失败,然后必须得将stop-writes-on-bgsave-error 的参数值配置为no才行。进一步推理:如果解决了上述导致redis RDB快照失败的问题,即使将参数修改回默认的yes,重启redis服务,问题也将不复存在。

标签:MISCONF,快照,redis,writes,Redis,报错,RDB,失败,disk
From: https://www.cnblogs.com/silgen/p/17514628.html

相关文章

  • Apache启动报错:Invalid command ‘ProxyPass‘, perhaps misspelled or defined by a
    配置文件httpd,问题出在ProxyPass这个环节:ProxyPass/vict_servicehttp://localhost:8080/vict_service也就是要为/vict_service这个请求路径匹配一个实际可用的路径,既然提示ProxyPass命令无效,那么肯定是某个地方的设置问题。解决的方法就在httpd这个配置文件里,找到以下两条......
  • nginx error报错:nginx 8: Not enough storage is available to process this command
    在nginx.conf中http下添加如下代码:client_max_body_size2000m;client_body_buffer_size2000m;client_body_timeout500;client_header_buffer_size64k;client_header_timeout500;keepalive_requests300;large_client_header......
  • node启动报错:'NODE_OPTIONS' 不是内部或外部命令,也不是可运行的程序
    问题:解决:npminstall-gwin-node-env重新启动问题****解决......
  • 导入第三方项目maven插件报错
    导入一个微服务项目发现:Plugin'org.springframework.boot:spring-boot-maven-plugin:'notfound解决方式,添加版本号重新导入:查找下父工程的版本:发现是:2.3.9.RELEASE子工程微服务也要用这个版本的:原文:https://www.cnblogs.com/vevy/p/12246679.html......
  • Python报错 | PermissionError: [Errno 13] Permission denied: 'xxx'
    报错信息使用python对模型进行输出文件的过程中,报如下错误:PermissionError:[Errno13]Permissiondenied:'xxx'错误原因报错翻译过来是:权限错误:[errno13]权限被拒绝:错误产生的原因是文件无法打开,可能产生的原因是文件找不到,或者被占用,或者无权限访问,或者打开的不是文......
  • Python错误:requests请求https网站报错SSLError
    问题描述:用requests包请求https的网站时,经常会遇到证书问题,也就是常见的SSLerror:requests.exceptions.SSLError:HTTPSConnectionPool(host='www.xxx.com',port=443):Maxretriesexceededwithurl:xxx.html(CausedbySSLError(SSLCertVerificationError(1,'[S......
  • 传奇报错is not a valid date and time怎么处理?
    字面意思说不是有效日期和时间,实际是因为hero引擎对现在计算机系统的日期和时间显示的格式不识别造成的,我们只需要修改一下就可以。我们来点击电脑右下角的时间,弹出窗口后我们选择→更改日期和时间设置→更改日期和时间→更改日历设置→把短日期修改成yyyy-MM-dd点击应用确定即可......
  • Vue.js项目在IE11白屏报错
    一、概述项目使用vue/cli4脚手架搭建的前端项目,vue版本为2.6.10。但开发环境的IE11打开显示白屏,F12打开显示:查明报错原因是:I.E.不支持ES6语法。二、解决方案(一)解决方案11、安装如下的依赖包:npminstall--save-devbabel-polyfill或npminstall--save@babel-polyfill2、mai......
  • appium报错AttributeError: 'WebDriver' object has no attribute 'find_element_by_i
    解决方法:fromappium.webdriver.common.appiumbyimportAppiumBy#导入AppiumBysearch=driver.find_element(AppiumBy.ID,"com.android.settings:id/search")#编写格式:driver.find_element(by=AppiumBy.ACCESSIBILITY_ID,value='accessibility_id')思考流程:......
  • 使用vue cli 5.0 在vscode中运行vue命令报错
       1、运行 vue--version  报错  2、在cmd命令行执行 vue--version 正常  3、在终端中输入  get-ExecutionPolicy,查看当前权限  4、执行 set-executionpolicyremotesigned  命令设置为可用模式,但是报错  5、使用管理员打开powe......