我有一个正在运行的redis-server。
我想做个备份。
我想做以下事情:
cp dump.rdb ~/some-other-location/06-24-2012.rdb ?
我没有看到任何承诺我dump.rdb始终是一致的数据库存储。 (即我觉得有可能在我执行cp时,redis正在编写一些数据,因此dump.rdb不处于一致状态。)
这很糟糕,因为我现在必须关闭redis db才能制作dump.rdb的副本
在redis-server运行时,正确备份数据库的正确方法是什么?手册的哪一部分向我保证,此方法会创建一个处于一致(非半写)状态的数据库。
谢谢!
答案 0 :(得分:46)
来自http://redis.io/topics/persistence
Redis非常适合数据备份,因为您可以在数据库运行时复制RDB文件:RDB一旦生成就永远不会被修改,并且在生成它时会使用临时名称并使用重命名以原子方式重命名为其最终目标( 2)仅在新快照完成时。
因此,正确的方法是将dump.rdb复制到备份位置。
答案 1 :(得分:2)
如果您使用的是Amazon S3,使用 s3cmd 工具备份Redis数据库非常简单。
s3cmd: http://s3tools.org/s3cmd