【Redis持久化】Redis企业级数据备份方案

【Redis持久化】Redis企业级数据备份方案

9.1 redis数据备份方案

  1. 写crontab定时调度脚本去做数据备份
  2. 每小时cop一份rdb的备份,到一个目录中,仅仅保留最近48小时的备份
  3. 每天保留一份当日的rdb的备份,到一个目录中,仅仅保留最近一个月的备份。
  4. 每次copy备份的时候,都把旧的备份数据删除
  5. 每天晚上将当前服务器上所有的数据备份,发送到一份到远程服务器上去。

9.2 每小时备份rdb快照文件脚本

#!/bin/sh

#获取当前时间日期-精确到小时
cur_date=`date +%Y%m%d%k`

#删除目录
rm -rf /usr/local/redis/snapshotting/$cur_date

#创建目录
mkdir /usr/local/redis/snapshotting/$cur_date

#拷贝rdb快照文件
cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date

#删除48小时前的备份记录
del_date=`date -d -48hour + %Y%m%d%k`
rm -rf /usr/local/redis/snapshotting/$del_date

每小时 0分 执行一次 redis_rdb_copy_hourly.sh

0 * * * * sh /usr/local/redis/backup_script/redis_rdb_copy_hourly.sh

9.3 每天备份一份dump.rdb

#!/bin/sh

#获取当前时间日期-精确到天
cur_date=`date +%Y%m%d`

#删除目录
rm -rf /usr/local/redis/snapshotting/$cur_date

#创建目录
mkdir /usr/local/redis/snapshotting/$cur_date

echo "创建目录成功:/usr/local/redis/snapshotting/"$cur_date

#拷贝rdb快照文件
cp /var/redis/6379/dump.rdb /usr/local/redis/snapshotting/$cur_date

#删除48小时前的备份记录
del_date=`date -d -1month +%Y%m%d`
rm -rf /usr/local/redis/snapshotting/$del_date

echo "删除目录成功:/usr/local/redis/snapshotting/"$del_date

每天copy一次备份

crontab -e

0 0 * * * sh /usr/local/redis/copy/redis_rdb_copy_daily.sh

9.3 appendonly.aof + dump.rdb 数据备份

  1. 停止redis
  2. 关闭aof
  3. 拷贝rdb
  4. 重启redis
  5. 直接在命令行热修改配置:config set appendonly yes(注意:热修改的配置不会持久到配置文件中),创建aof备份文件。
  6. 关闭redis
  7. 修改配置文件:appendonly yes
  8. 重启redis

参考石衫老师 《亿级流量电商详情页系统》课程笔记

亲,如果觉得还不错,点个赞呗!!!

你可能感兴趣的:(【Redis持久化】Redis企业级数据备份方案)