redis持久化aof混备+备份脚本 linux 持续更新

本文介绍了Redis的AOF(Append Only File)和RDB(Snapshotting)两种持久化策略,包括如何开启AOF、关闭RDB,以及相关配置参数。还提供了一个详细的AOF备份脚本,用于定期备份Redis数据,并通过计划任务自动执行。在数据恢复过程中,文章提到了AOF文件的上传和应用,以及在恢复过程中遇到的问题和解决方法。此外,文中还讨论了AOF文件备份恢复时的应用键数量对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis aof 与 rdb 介绍

相关链接1
相关连接2
相关连接3

  1. 开启appendonly 当前生效
127.0.0.1:6379> config get appendonly
1) "appendonly"
2) "no"
127.0.0.1:6379> config set appendonly yes  #开启aof持久化
127.0.0.1:6379> config set save ""  #关闭rdb持久化
127.0.0.1:6379> config get aof-use-rdb-preamble   #redis 4.0 默认开启aof 混备
1) "aof-use-rdb-preamble"
2) "yes"

  1. 修改redis.conf
vim redis.conf
save ""
appendonly yes
  1. aof持久化相关参数介绍
appendfsync everysec  #每秒将内存中redis_buff flush到磁盘中
auto-aof-rewrite-percentage 100 #当前AOF文件比上次重写后的AOF文件大小的增长比例超过100 
auto-aof-rewrite-min-size 64mb  # 当前AOF文件的文件大小大于64MB   以上两个要同时满足才会触发aofrewrite
  1. 备份脚本与计划任务

脚本地址

脚本如下

[root@iZwz9c0rnhno789fl3ibk6Z scripts]# cat redis_backup_aof.sh 
#!/usr/bin/bash

#Tate:2022.5.6
#Author:Yingjian
#function: 定时备份redis aof 文件
#env

workdir=`cd $(dirname $0);pwd`
same_day=`date +%F`
seven_day_age=`date -d '-7 day' "+%F"`
data_dir=/usr/local/redis/var
backup_dir=/datawww/backup/redis
logfile=$workdir/backup_reids.log
redis=/usr/local/bin/redis-cli

echo "----`date` started sh---------------------------" >> $logfile

if [ -d $backup_dir ];then
	echo "`date` $backup_dir 备份目录已存在" >> $logfile
else
	echo "`date` $backup_dir 备份目录不存在 正在创建 " >> $logfile
	mkdir -p $backup_dir
fi

#判断redis服务器是否正在创建rdb文件

while :
do
sleep 1
number=`$redis info Persistence |grep rdb_bgsave_in_progress |awk -F":" '{print $NF}'`
if [ `echo ${number} | awk -v tem=0 '{print($1>tem)? "1":"0"}'` -eq "0" ];then
echo "rdb_bgsave_in_progress为 0 正在退出循环 执行备份中" >> $logfile
break
fi

done

if [ -d $backup_dir/${same_day} ];then
	echo "`date` $backup_dir/${same_day} 备份目录已存在" >> $logfile
else
	echo "`date` $backup_dir/${same_day} 备份目录不存在 正在创建" >> $logfile
	mkdir -p $backup_dir/${same_day}
fi
echo "`date` cp aoffile start " >> $logfile
#备份redis aof文件
cp -arf $data_dir/appendonly.aof $backup_dir/${same_day}
#备份redis rdb文件
#手动执行bgsave
echo "`date` start bgsave " >> $logfile
$redis bgsave
sleep 30
echo "`date` end bgsave" >> $logfile

cp -arf $data_dir/dump.rdb $backup_dir/${same_day}

echo "`date` backup complete" >> $logfile

#删除过期目录
rm -rf $backup_dir/${seven_day_age}

计划任务

0 1 * * * /usr/bin/bash /datawww/scripts/redis_backup_aof.sh
aof文件备份恢复

redis应用1当下key的数量
在这里插入图片描述

redis 应用2当下key的数量

在这里插入图片描述

上传redis应用2aof文件到redis应用1上
数据目录如下
在这里插入图片描述
在这里插入图片描述
上传新的aof文件
在这里插入图片描述

重启redis应用

[root@iZwz9conqz5shxfx2gmnfkZ data]# systemctl restart redis

在这里插入图片描述
重启失败

chown redis.redis appendonly.aof
[root@iZwz9conqz5shxfx2gmnfkZ data]# redis-check-aof --fix appendonly.aof

在这里插入图片描述

本文参考:https://www.codeleading.com/article/10122519892/
本文参考:https://blog.youkuaiyun.com/csd753111111/article/details/100428659
本文参考:https://blog.youkuaiyun.com/xiaobaiing/article/details/51371880

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值