Redis: “Can’t save in background: fork: Cannot allocate memory”
1 | redis.clients.jedis.exceptions.JedisDataException: 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. |
今天项目现场反馈说工单提交不了了,查看日志发现时 “Redis “MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk”的问题。这个错误信息是Redis客户端工具在保存数据时候抛出的异常信息。
网上查了一下,很多人都是建议“config set stop-writes-on-bgsave-error no”。这样做其实是不好的,这仅仅是让程序忽略了这个异常,使得程序能够继续往下运行,但实际上数据还是会存储到硬盘失败!:
百度了下 查到了有关linux下redis overcommit_memory的问题 ,提供了三种修改方案:
1 | 有三种方式修改内核参数方式,但要有root权限: |
修改后重启,总是提示 “Fatal error, can’t open config file”
1 | redis-server stop |
上面删除方法都试过了,无法停止。无奈只有重启解决之。
参考:Redis: “Can’t save in background: fork: Cannot allocate memory”