Redis教程

记一次redis异常MISCONF Redis is configured to save RDB snapshots, but is currently not able

本文主要是介绍记一次redis异常MISCONF Redis is configured to save RDB snapshots, but is currently not able,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

两天前将引入redis的项目第一次部署到服务器中,今天发现网站页面都是500,服务器中redis是在运行的,看了SLF4J日志发现报了redis有关的错误,发现RDB持久化出现问题。网上查了下发现RDB持久化过程是有两种,同步回写SAVE 和 异步回写BGSAVE,BGSAVE是fork主进程,默认需要当前主线程的内存大小才能成功(比如主线程 1G,则需要向操作系统申请成功1G内存给子进程才可以进行),解决办法是 进入  /etc/sysctl.conf ,添加 vm.overcommit_memory=1,表示允许使用内存直到用光为止。

redis的子进程创建出来时是和父进程共享相同的物理页,父进程如果要进行数据操作,将把对应的数据页创建一个副本进行修改,而子进程在fork过程中共享整个父进程的内存快照。这个就是COW

 

 


参考:https://www.freesion.com/article/7439956888/

Redis 持久化内存不足分析 - 简书 (jianshu.com)

这篇关于记一次redis异常MISCONF Redis is configured to save RDB snapshots, but is currently not able的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!