redis - 在redis中备份整个数据的一些困惑

标签 redis backup

文件说:
每当 Redis 需要将数据集转储到磁盘时,就会发生以下情况:
Redis fork 。我们现在有一个子进程和一个父进程。
child 开始将数据集写入临时 RDB 文件
当 child 写完新的 RDB 文件时,它会替换旧文件


因为我想备份整个数据,所以我在 redis-cli 中输入 shutdown 命令希望它关闭并将所有数据保存到 dump.rdb。完全关闭后,我转到数据库位置,看看 dimpr.rdb 是 423.9MB 和 temp-21331.rdb 是 180.5MB 发生了什么。Temp 文件仍然存在并且小于 dimpr.rdb。显然,redis 不使用临时文件替换 dump.rdb

我想知道此时 dump.rdb 是否是整个 db 文件?删除临时文件是否安全。

最佳答案

temp-21331.rdb 的文件 mod 时间戳是什么意思?这听起来像是崩溃的遗留物。 您可以删除它。

文档绝对正确。重写时,所有信息都写入一个临时文件(压缩),完成后,dump.rdb 文件将被此临时文件替换。然而,在正常使用期间不应有残留物。 重要的是:您始终需要足够的可用磁盘空间来使此操作成功。一个安全的准则是:redis 内存限制的 140%(如果不应用压缩,则为 200%)。

希望这有帮助,TW

关于redis - 在redis中备份整个数据的一些困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193214/

相关文章:

c# - 并发读取/写入 Redis 集 - 单服务器多客户端

mysql - 备份MYSQL的应用程序

amazon-web-services - Amazon EBS,快照作为增量备份

node.js - Redis过期和递增

lua - 如何定时向第三方服务发送Redis数据?

python - 取消 Python RQ 中已经执行的任务?

sql - 通过SQL脚本导出存储过程

tfs - 如何使用 TFS Power Tools 备份/恢复功能将整个 TFS 安装从一台服务器恢复到另一台服务器

mysql - 如何从远程服务器备份我的sql

javascript - 如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?