【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

參考石衫老師 《億級流量電商詳情頁系統》課程筆記

親,如果覺得還不錯,點個讚唄!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章