Redis在Ubuntu上的备份与恢复方法
导读:Redis在Ubuntu上的备份与恢复方法 一 关键要点与前置检查 确认 Redis 数据目录与持久化文件位置:在 redis-cli 中执行 config get dir(常见为:/var/lib/redis) 查看目录下是否存在 d...
Redis在Ubuntu上的备份与恢复方法
一 关键要点与前置检查
- 确认 Redis 数据目录与持久化文件位置:在 redis-cli 中执行
- config get dir(常见为:/var/lib/redis)
- 查看目录下是否存在 dump.rdb;若启用 AOF,还会有 appendonly.aof
- 如配置了密码,后续命令需先认证:auth yourpassword
- 建议先停写或手动落盘,再复制 RDB,减少数据丢失风险(RDB 生成过程使用临时名,完成后原子 rename,运行时可安全复制)。
二 备份方法
- 方法A 手动触发落盘并复制 RDB(适合临时备份)
- 登录并(如有密码)认证:redis-cli → auth yourpassword
- 触发同步快照:save(或 bgsave,后台异步)
- 复制数据文件:sudo cp /var/lib/redis/dump.rdb /path/to/backup/dump-$(date +%F).rdb
- 如需保留多份,可用时间戳或轮转脚本管理备份文件
- 方法B 远程导出 RDB(不依赖服务器文件系统权限)
- 在备份机执行:redis-cli -h HOST -p 6379 -a PASSWORD --rdb /path/to/dump.rdb
- 方法C 自动化与增量备份(推荐用于生产)
- 安装 rdiff-backup:sudo apt-get install -y rdiff-backup
- 一次性备份:rdiff-backup --preserve-numerical-ids /var/lib/redis /path/to/backup/redis
- 定时任务(每日午夜):echo ‘0 0 * * * rdiff-backup --preserve-numerical-ids --no-file-statistics /var/lib/redis /path/to/backup/redis’ | sudo tee /etc/cron.d/redis-backup。
三 恢复方法
- 场景1 从 RDB 文件恢复到本机或新机器
- 建议先停止 Redis:sudo systemctl stop redis-server
- 备份当前数据文件:sudo mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.bak
- 如启用 AOF,先临时关闭并移走 AOF,避免恢复时被重放:
- 编辑 /etc/redis/redis.conf:appendonly no
- 或 sudo mv /var/lib/redis/*.aof /var/lib/redis/appendonly.aof.bak
- 拷贝备份的 RDB 到数据目录并修正属主属组:
- sudo cp -p /path/to/backup/dump.rdb /var/lib/redis/dump.rdb
- sudo chown redis:redis /var/lib/redis/dump.rdb
- sudo chmod 660 /var/lib/redis/dump.rdb
- 启动 Redis:sudo systemctl start redis-server
- 验证:redis-cli → GET yourkey;info persistence 查看持久化状态
- 如需重新启用 AOF:redis-cli → BGREWRITEAOF,待完成后将 redis.conf 的 appendonly 改回 yes 并重启
- 场景2 使用 rdiff-backup 时间点恢复
- 恢复到最近一次:rdiff-backup -r now /path/to/backup/redis/dump.rdb /var/lib/redis/dump.rdb
- 恢复到指定时间:rdiff-backup -r 2025-12-01T00:00:00 /path/to/backup/redis/dump.rdb /var/lib/redis/dump.rdb
- 场景3 远程机器恢复
- 先用 --rdb 导出到备份机,再按场景1步骤恢复到目标机器。
四 常见问题与排错
- 恢复后数据不一致或缺失
- 确认恢复前已执行 save/bgsave;如启用 AOF,恢复时临时关闭 AOF 并避免重放旧日志,恢复完成后再 BGREWRITEAOF 重建 AOF
- 权限导致 Redis 无法加载 RDB
- 确保 /var/lib/redis/dump.rdb 属主为 redis:redis,权限 660
- 恢复后 Redis 无法启动
- 查看状态与日志:sudo systemctl status redis-server、sudo journalctl -u redis-server.service
- 检查配置、端口占用、磁盘空间与内存等资源是否异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Redis在Ubuntu上的备份与恢复方法
本文地址: https://pptw.com/jishu/764843.html
