在写入 Redis ( SET foo bar)期间,我收到以下错误:
SET foo bar
MICONF Redis 配置为保存 RDB 快照,但目前无法在磁盘上持久化。可以修改数据集的命令被禁用。有关错误的详细信息,请检查 Redis 日志。
基本上我理解的问题是redis无法将数据保存在磁盘上,但不知道如何摆脱问题。
如果您遇到错误并且在运行的redis实例上无法丢弃某些重要数据(rdb文件或其目录的权限问题,或磁盘空间不足),您可以随时将rdb文件重定向到其他地方。
rdb
使用redis-cli,您可以执行以下操作:
redis-cli
CONFIG SET dir /tmp/some/directory/other/than/var CONFIG SET dbfilename temp.rdb
在此之后,您可能想要执行BGSAVE命令以确保数据将写入rdb文件。确保执行时INFO persistence, bgsave_in_progressis already0和rdb_last_bgsave_statusis ok。之后,您现在可以开始将生成的rdb文件备份到安全的地方。
BGSAVE
INFO persistence
bgsave_in_progress
0
rdb_last_bgsave_status
ok
使用redis-cli,您可以停止它尝试保存快照:
config set stop-writes-on-bgsave-error no
这是一个快速的解决方法,但如果您关心使用它的数据,您应该首先检查以确保 bgsave 失败的原因。