redis - Redis 的 .rdb 文件的操作是 "blocking"吗?例如,我可以在 SAVE 操作的中间复制 .rdb 吗?

标签 redis database nosql

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

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

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

谢谢!

最佳答案

当 Redis 将 RDB 写入磁盘时,它会写入一个临时文件。保存过程完成写入后,它会将其重命名/移动到“dump.rdb”文件(或者如果您已经这样做,则将其更改为任何内容)。这是一个原子操作。因此,您应该可以接受您提出的方法。

如果您想对其进行更多控制,可以使用 https://github.com/therealbill/redis-buagent 等工具它作为从站连接并生成自己的 RDB,将其存储在内存中,然后存储到 S3(或您想要存储的其他任何地方,例如云文件或本地文件)或使用 redis-cli --rdb 生成一个“本地”RDB 文件供您复制到 S3。

关于redis - Redis 的 .rdb 文件的操作是 "blocking"吗?例如,我可以在 SAVE 操作的中间复制 .rdb 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353356/

相关文章:

sql-server - SQL Server Management Studio 说此语句不正确

javascript - 如何在 Parse Cloud Code 中更新用户 afterSave 中的另一个对象?

node.js - db.collection 不是一个函数

laravel - 为什么 Laravel Redis::throttle 在无法获取锁时速度如此之慢?

redis - 如何在 Redis 中存储对象数组?

database - 将所有数据库列设置为 NOT NULL 是一种好习惯吗?

java - 导出 MySQL 数据库并在 *.jar 文件中使用它

node.js - 对 Redis 数据库的异步 NodeJS 请求

Redis 哈希分页

具有多种条件的 Cassandra 数据模型