Redis容灾策略
RDB持久化
修改redis.conf文件,開啟RDB持久化機制:
save 900 1save 300 10save 60 10000AOF持久化
修改redis.conf文件
打開AOF機制
appendonly yes配置rewrite
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mbAOF寫入方式(每秒寫入即可)
# appendfsync always # appendfsync always appendfsync everysec # appendfsync noRDB日志備份
每小時備份一次RDB文件,同時刪除48小時前備份的日志文件。
新建備份腳本
cur_date=`date + %Y%m%d%H%M` rm -rf /usr/local/redis-4.0.10/snapshotting/$cur_date mkdir -p /usr/local/redis-4.0.10/snapshotting/$cur_date cp /usr/local/redis-4.0.10/dump.rdb /usr/local/redis-4.0.10/snapshotting/$cur_datedel_date=`date -d -48hour + %Y%m%d%H%M` rm -rf /usr/local/redis-4.0.10/snapshotting/$del_date通過crontab定時器執行備份腳本
使用命令crontab -e打開定時器文件,在其中加上執行時間的任務并保存
恢復方法
如果是redis進程掛掉,那么重啟redis進程即可,直接基于AOF日志文件恢復數據
如果是redis進程所在機器掛掉,那么重啟機器后,嘗試重啟redis進程,嘗試直接基于AOF日志文件進行數據恢復
如果redis當前最新的AOF和RDB文件出現了丟失/損壞,那么可以嘗試基于該機器上當前的某個最新的RDB數據副本進行數據恢復,步驟如下:
①停止redis(命令是redis-cli shutdown),
②在配置文件中關閉aof: appendonly no
③拷貝rdb日志備份到/usr/local/redis-4.0.10目錄下
④啟動redis
⑤嘗試get一個key,確認數據恢復
⑥命令熱修改redis配置,使用redis-cli連接redis,使用命令redis config set appendonly yes打開aof方式,這樣aof和rdb數據就一致了
⑦手動修改redis.conf配置文件中appendonly為yes,因為熱修改暫時不會寫到配置文件中,所以需要手動修改,然后啟動redis,再次確認數據恢復
總結
- 上一篇: Nginx学习笔记(三)
- 下一篇: 2021中国华录杯·算法大赛活动进行中,