主页 > 知识库 > Redis fork进程分配不到内存解决方案

Redis fork进程分配不到内存解决方案

热门标签:服务外包 Linux服务器 网站排名优化 呼叫中心市场需求 地方门户网站 AI电销 铁路电话系统 百度竞价排名

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

Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。

BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

语法

redis Bgsave 命令基本语法如下:

redis 127.0.0.1:6379> BGSAVE

原因:

在BGSAVE时,Redis会fork一个子进程,把数据保存到硬盘上。你可以通过查看日志来获取BGSAVE失败的原因(Linux系统里Redis日志文件通常是在/var/log/redis/redis-server.log),大多数时候BGSAVE失败的原因是fork进程分配不到内存。更多时候,fork进程分配不到内存是因为跟操作系统的优化相冲突,即使操作系统有足够的内存。

解决方法一:

修改redis.conf文件:

vim redis.conf

然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接着把后面的yes设置为no即可。

解决方法二:

修改sysctl.conf文件,

sudo vim /etc/sysctl.conf

添加配置:

vm.overcommit_memory=1

执行命令,使其生效

sudo sysctl -p /etc/sysctl.conf

重启Redis。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 查看Redis内存信息的命令
  • 一次关于Redis内存诡异增长的排查过程实战记录
  • 浅谈redis内存数据的持久化方式
  • 降低PHP Redis内存占用
  • 浅谈redis采用不同内存分配器tcmalloc和jemalloc
  • 将MongoDB作为Redis式的内存数据库的使用方法
  • Redis教程(十四):内存优化介绍
  • Redis教程(十一):虚拟内存介绍
  • redis数据库查找key在内存中的位置的方法

标签:黄山 衡水 兰州 湘潭 湖南 崇左 仙桃 铜川

巨人网络通讯声明:本文标题《Redis fork进程分配不到内存解决方案》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266