【Redis持久化】Redis企業級數據備份方案
9.1 redis數據備份方案
- 寫crontab定時調度腳本去做數據備份
- 每小時cop一份rdb的備份,到一個目錄中,僅僅保留最近48小時的備份
- 每天保留一份當日的rdb的備份,到一個目錄中,僅僅保留最近一個月的備份。
- 每次copy備份的時候,都把舊的備份數據刪除。
- 每天晚上將當前服務器上所有的數據備份,發送到一份到遠程服務器上去。
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 數據備份
- 停止redis
- 關閉aof
- 拷貝rdb
- 重啓redis
- 直接在命令行熱修改配置:config set appendonly yes(注意:熱修改的配置不會持久到配置文件中),創建aof備份文件。
- 關閉redis
- 修改配置文件:appendonly yes
- 重啓redis
參考石衫老師 《億級流量電商詳情頁系統》課程筆記
親,如果覺得還不錯,點個讚唄!!!