Redis的.rdb文件操作是否“阻塞”?例如,我可以在SAVE操作的中间复制.rdb吗?

时间:2015-10-26 18:48:02

标签: redis database nosql

我在这里运行一个Redis数据库,想要制作一个“快照快照”。

到底是什么?是。我想每天将.rdb文件移动到S3的存储桶中。此外,它应该是一个预定的操作(可能使用cronTab函数)。

所以我的问题实际上是这样的:如果cronTab作业在SAVE操作(从redis到.rdb)中间开始运行,我会遇到麻烦吗?没有丢失一些数据的问题,我只是希望它能够毫无阻碍地工作。

谢谢!

1 个答案:

答案 0 :(得分:1)

当Redis将RDB写入磁盘时,它会写入临时文件。当保存过程完成写入后,它会重命名/移动到" dump.rdb"文件(或者你已经改变它的任何内容)。这是一个原子动作。因此,您建议的方法应该没问题。

如果你想要更多地控制它,你可以使用https://github.com/therealbill/redis-buagent之类的工具作为奴隶连接并生成它自己的RDB,将其存储在内存中然后存入S3(或者你想要的任何地方)存储诸如云文件或本地文件)或使用redis-cli --rdb生成"本地" RDB文件供您复制到S3。