在写入Redis (SET foo bar)期间,我得到以下错误:

MISCONF Redis被配置为保存RDB快照,但当前为 无法在磁盘上持久保存。可能修改数据集的命令是 禁用。有关错误的详细信息,请查看Redis日志。

基本上我理解的问题是,redis是不能在磁盘上保存数据,但不知道如何摆脱这个问题。

下面的问题也有同样的问题,它在很久以前就被抛弃了,没有答案,很可能没有尝试解决这个问题。


当前回答

一个更永久的修复方法可能是查看/etc/redis/redis.conf中200-250行左右的rdb特性的设置,这不是redis 2中的一部分。x天。

值得注意的是

dir ./

可更改为

dir /home/someuser/redislogfiledirectory

或者您可以注释掉所有保存行,而不用担心持久性。(见/etc/redis/redis.conf中的注释)

还有,别忘了

service redis-server stop
service redis-server start

其他回答

我在使用AFS磁盘空间的服务器上工作时遇到了这个问题,因为我的身份验证令牌已经过期,当redis-server试图保存时产生了Permission Denied响应。我通过刷新我的令牌来解决这个问题:

kinit USERNAME_HERE -l 30d && aklog

如果您正在运行MacOS,并且最近升级到Catalina,您可能需要按照本问题的建议运行brew服务重新启动redis。

# on redis 6.0.4 
# if show error 'MISCONF Redis is configured to save RDB snapshots'
# Because redis doesn't have permissions to create dump.rdb file
sudo redis/bin/redis-server 
sudo redis/bin/redis-cli

由于内存不足,bgsave过程中可能会出现错误。试试这个(从redis后台保存FAQ)

echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1

感谢大家检查这个问题,显然错误是在bgsave期间产生的。

对我来说,在shell中输入config set stop-writes-on-bgsave-error no并重新启动Redis解决了这个问题。