redis连接错误System Error MISCONF Redis is configured to save RDB snapshots, but XX
情况1解决办法:
由于强制停止redis快照,不能持久化引起的。
在客户端输入
config set stop-writes-on-bgsave-error no
情况2解决办法:
Redis在保存数据到硬盘时为了避免主进程假死,需要Fork一份主进程,然后在Fork进程内完成数据保存到硬盘的操作,如果主进程使用了4GB的内存,Fork子进程的时候需要额外的4GB,此时内存就不够了,Fork失败,进而数据保存硬盘也失败了。
修改vm.overcommit_memory=1
// 原文:http://pydelion.com/2013/05/27/redis-cant-save-in-background-fork-cannot-allocate-memory/
If you get this error Can't save in background: fork: Cannot allocate memory it means that your current database is bigger than memory you have. To fix the issue enable vm.overcommit_memory: sysctl vm.overcommit_memory=1 To have if after reboot add this line to /etc/sysctl.cnf: vm.overcommit_memory=1
情况3解决办法:
Permission denied持久化文件无权限,改一下文件夹权限就解决了
chmod 777 /xxx/redis_data
当然是那种情况需要先看看redis日志文件。
redis在默认情况下,是不会生成日志文件的,所以需要配置 配置方法:
1、首先找到redis的配置文件
2、打开配置文件,直接搜logfile ""
3、将路径填入logfile后面的引号内,例如:logfile "/plus/data/redis_data/redislog/redis.log"
4、手动建立了/plus/data/redis_data/redislog文件夹,日志文件不用建,重启redis会自动生成