如何强制Redis进行阻止保存?我正在使用Ruby Redis gem,但我相信这个问题不是特定于该库。似乎SAVE和BGSAVE命令似乎在背景中晃动,导致后续调用中出现“-ERR background save in progress”错误。
希望这将是一个无聊的同步调用,它会阻止所有其他Redis命令,直到“dump.rdb”的保存完成。并希望这不需要实际关闭服务器,用“/etc/init.d/redis-server”捣乱。据推测,我应该使用LASTSAVE命令进行轮询?
答案 0 :(得分:7)
如果你调用SAVE但是你得到一个关于正在进行的后台保存的错误,这意味着还有一个BGSAVE正在进行中,因为其中一个是真的:
1)有人打电话给BGSAVE 2)Redis配置为不时保存(默认值)。
所以你的SAVE失败了,因为已经有一个正在进行的保存。您可以检查是否有正在进行的后台,以及何时完成,检查INFO输出。
答案 1 :(得分:0)
SAVE
是a synchronous save; BGSAVE
为the asynchronous one。
为什么你认为SAVE
正在后台运行?
答案 2 :(得分:0)
Redis #save就是这么做的。您使用的是什么版本的Redis和redis gem?