原因:在BGSAVE时,Redis会fork一个子进程,把数据保存到硬盘上。你可以通过查看日志来获取BGSAVE失败的原因(Linux系统里Redis日志文件通常是在/var/log/redis/redis-server.log),大多数时候BGSAVE失败的原因是fork进程分配不到内存。更多时候,fork进程分配不到内存是因为跟操作系统的优化相冲突,即使操作系统有足够的内存。
解决:
代码语言:javascript复制Linux系统中,修改/etc/sysctl.conf文件,添加配置:
vm.overcommit_memory=1
执行命令,使其生效
sudo sysctl -p /etc/sysctl.conf