在写入Redis (SET foo bar)期间,我得到以下错误:
MISCONF Redis被配置为保存RDB快照,但当前为 无法在磁盘上持久保存。可能修改数据集的命令是 禁用。有关错误的详细信息,请查看Redis日志。
基本上我理解的问题是,redis是不能在磁盘上保存数据,但不知道如何摆脱这个问题。
下面的问题也有同样的问题,它在很久以前就被抛弃了,没有答案,很可能没有尝试解决这个问题。
在写入Redis (SET foo bar)期间,我得到以下错误:
MISCONF Redis被配置为保存RDB快照,但当前为 无法在磁盘上持久保存。可能修改数据集的命令是 禁用。有关错误的详细信息,请查看Redis日志。
基本上我理解的问题是,redis是不能在磁盘上保存数据,但不知道如何摆脱这个问题。
下面的问题也有同样的问题,它在很久以前就被抛弃了,没有答案,很可能没有尝试解决这个问题。
当前回答
请注意,当您的服务器受到攻击时,将出现此错误。刚刚发现redis无法写入'/etc/cron。D /web',在修改权限后,添加了包含挖掘算法和一些隐藏选项的新文件。
其他回答
如果你在windows机器上本地运行Redis,试着“以管理员身份运行”,看看它是否有效。对我来说,问题是Redis位于“程序文件”文件夹中,默认情况下会限制权限。这是应该的。
但是,不要以管理员身份自动运行Redis。你不会想要授予它更多的权限。你想按规矩办事。
因此,我们能够通过作为管理员运行它来快速识别问题,但这不是解决方法。一种可能的情况是,你把Redis放在一个没有写权限的文件夹中,结果DB文件被存储在同一个位置。
您可以通过打开redis.windows.conf并搜索以下配置来解决此问题:
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir ./
将dir ./更改为具有常规读写权限的路径
你也可以将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
正如@Chris指出的,问题可能是低内存。当我们分配太多内存给MySQL (innodb_buffer_pool_size)时,我们就开始遇到这种情况。
为了确保有足够的内存用于Redis和其他服务,我们减少了MySQL上的innodb_buffer_pool_size。
由于内存不足,bgsave过程中可能会出现错误。试试这个(从redis后台保存FAQ)
echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
对我来说
config set stop-writes-on-bgsave-error no
我重新加载我的mac,它工作