目录

  • 一、问题描述
  • 二、解决方法
    • 1.命令行修改
    • 2.配置文件修改
  • 三、其它问题

一、问题描述

Redis 之前一直使用正常,某一天突然报错:

MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

二、解决方法

两种方法解决:一是通过命令行修改,一是通过配置文件修改。

1.命令行修改

redis-cliauth XXX127.0.0.1:6379> config set stop-writes-on-bgsave-error no

2.配置文件修改

修改 redis.conf ,将 stop-writes-on-bgsave-error 设置为 no,然后重启服务。

三、其它问题

一般还会同时有两个警告:

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

警告1解决方法:

echo 1 > /proc/sys/vm/overcommit_memory

警告2解决方法:
vi /etc/sysctl.conf

#添加配置net.core.somaxconn = 1024

检查是否成功:sysctl -p