Redis阻止保存

时间:2011-01-21 15:40:10

标签: ruby redis

如何强制Redis进行阻止保存?我正在使用Ruby Redis gem,但我相信这个问题不是特定于该库。似乎SAVE和BGSAVE命令似乎在背景中晃动,导致后续调用中出现“-ERR background save in progress”错误。

希望这将是一个无聊的同步调用,它会阻止所有其他Redis命令,直到“dump.rdb”的保存完成。并希望这不需要实际关闭服务器,用“/etc/init.d/redis-server”捣乱。据推测,我应该使用LASTSAVE命令进行轮询?

3 个答案:

答案 0 :(得分:7)

如果你调用SAVE但是你得到一个关于正在进行的后台保存的错误,这意味着还有一个BGSAVE正在进行中,因为其中一个是真的:

1)有人打电话给BGSAVE 2)Redis配置为不时保存(默认值)。

所以你的SAVE失败了,因为已经有一个正在进行的保存。您可以检查是否有正在进行的后台,以及何时完成,检查INFO输出。

答案 1 :(得分:0)

SAVEa synchronous save; BGSAVEthe asynchronous one

为什么你认为SAVE正在后台运行?

答案 2 :(得分:0)

Redis #save就是这么做的。您使用的是什么版本的Redis和redis gem?