Redis数据备份和恢复
Redis数据备份和恢复
- 一、每小时备份,删除48小时前的数据
- 二、每天备份,删除1个月前的数据
- 三、数据恢复
数据备份方案,RDB非常适合做冷备,每次生成之后,就不会再有修改了。
(1)写crontab定时调度脚本去做数据备份。
(2)每小时都copy一份rdb的备份,到一个目录中去,仅仅保留最近48小时的备份。
(3)每天都保留一份当日的rdb的备份,到一个目录中去,仅仅保留最近1个月的备份。
(4)每次copy备份的时候,都把太旧的备份给删了。
(5)每天晚上将当前服务器上所有的数据备份,发送一份到远程的云服务上去。
一、每小时备份,删除48小时前的数据
redis_rdb_hourly.sh
#!/bin/sh
cur_date=`date +%Y%m%d%H`
rm -rf /usr/local/redis/backup/$cur_date
mkdir /usr/local/redis/backup/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/backup/$cur_date
del_date=`date -d -48hour +%Y%m%d%H`
rm -rf /usr/local/redis/backup/$del_date
crontab -e
0 * * * * sh /usr/local/redis/backup/redis_rdb_hourly.sh
二、每天备份,删除1个月前的数据
redis_rdb_daily.sh
#!/bin/sh
cur_date=`date +%Y%m%d`
rm -rf /usr/local/redis/backup/$cur_date
mkdir /usr/local/redis/backup/$cur_date
cp /var/redis/6379/dump.rdb /usr/local/redis/backup/$cur_date
del_date=`date -d -1month +%Y%m%d`
rm -rf /usr/local/redis/backup/$del_date
crontab -e
0 0 * * * sh /usr/local/redis/backup/redis_rdb_daily.sh
三、数据恢复
(1)如果是redis进程挂掉,重启redis进程即可,直接基于AOF日志文件恢复数据,注意默认是开启RDB关闭AOF,所以需要开启,两个同时开启默认用AOF恢复。
(2)如果是redis进程所在机器挂掉,那么重启机器后,尝试重启redis进程,尝试直接基于AOF日志文件进行数据恢复。AOF没有破损,也是可以直接基于AOF恢复的。
AOF append-only,顺序写入,如果AOF文件破损,那么用redis-check-aof fix
(3)如果redis当前最新的AOF和RDB文件出现了丢失/损坏,那么可以尝试基于该机器上当前的某个最新的RDB数据副本进行数据恢复。
当前最新的AOF和RDB文件都出现了丢失/损坏到无法恢复,一般不是机器的故障,人为。
找到RDB最新的一份备份,小时级的备份可以了,小时级的肯定是最新的,copy到redis里面去,就可以恢复到某一个小时的数据。
特别注意
数据恢复
所以我们要先停止redis,删除appendonly.aof,在配置中关闭aof,然后拷贝一份rdb过来,再重启redis,这个时候数据就能恢复了,然后直接在命令行热修改redis配置,打开aof,这个redis就会将内存中的数据对应的日志,写入aof文件中,此时aof和rdb两份数据文件的数据就同步了,然后再停止redis,在配置中开启aof,再重启redis。
config get appendonly
config set appendonly yes
关键点:热修改不会修改配置文件,所以最后必须手动修改,数据恢复优先使用的是appendonly.aof,只要开着aof,redis启动的时候就会使用它,如果不存在就会生成一个新的空的appendonly.aof文件,所以必须通过热修改配置来让aof和rdb数据同步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-07-09 Ueditor 防止html过滤标签的操作