首页主机资讯Redis在Ubuntu上的备份与恢复方法

Redis在Ubuntu上的备份与恢复方法

时间2025-12-05 16:22:03发布访客分类主机资讯浏览671
导读: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(适合临时备份)
    1. 登录并(如有密码)认证:redis-cli → auth yourpassword
    2. 触发同步快照:save(或 bgsave,后台异步)
    3. 复制数据文件:sudo cp /var/lib/redis/dump.rdb /path/to/backup/dump-$(date +%F).rdb
    4. 如需保留多份,可用时间戳或轮转脚本管理备份文件
  • 方法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 文件恢复到本机或新机器
    1. 建议先停止 Redis:sudo systemctl stop redis-server
    2. 备份当前数据文件:sudo mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.bak
    3. 如启用 AOF,先临时关闭并移走 AOF,避免恢复时被重放:
      • 编辑 /etc/redis/redis.conf:appendonly no
      • 或 sudo mv /var/lib/redis/*.aof /var/lib/redis/appendonly.aof.bak
    4. 拷贝备份的 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
    5. 启动 Redis:sudo systemctl start redis-server
    6. 验证:redis-cli → GET yourkey;info persistence 查看持久化状态
    7. 如需重新启用 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
Ubuntu Redis主从复制怎么设置 Redis内存淘汰策略Ubuntu怎么配置

游客 回复需填写必要信息