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

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

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

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


当前回答

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

其他回答

对我来说

config set stop-writes-on-bgsave-error no

我重新加载我的mac,它工作

一个更永久的修复方法可能是查看/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

FWIW,我遇到了这个问题,解决方案是简单地向盒子添加一个交换文件。我使用了这个方法:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

如果你正在使用docker/docker-compose,并且想要阻止redis写入文件,你可以创建一个redis配置并挂载到容器中

docker.compose.override.yml

  redis:¬
      volumes:¬
        - ./redis.conf:/usr/local/etc/redis/redis.conf¬
      ports:¬
        - 6379:6379¬

您可以从这里下载默认配置

在redis.conf文件中,确保注释掉这3行

save 900 1
save 300 10
save 60 10000

您可以在这里查看更多删除持久数据的解决方案

您必须chmod和chown新文件夹

chown -R redis chmod…