redis之RDB快照定时备份

本文详细介绍了如何使用crontab设置定时任务,实现Redis数据库的每小时和每日备份,并制定了48小时和一个月的数据保留周期。通过shell脚本自动完成数据复制和清理工作,确保数据的安全性和有效性。

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

设置每小时备份一次,保留48小时

crontab -e

0 * * * * sh /root/tools/redis_rdb_bak_hourly.sh

vim /root/tools/redis_rdb_bak_hourly.sh

#!/bin/sh 
history_hour=`date +%Y%m%d%H`
rm -rf /opt/data-history/redis/$history_hour
mkdir -p /opt/data-history/redis/$history_hour
cp /usr/local/redis-5.0.5/data/dump.rdb /opt/data-history/redis/$history_hour

clear_hour=`date -d -48hour +%Y%m%d%H`
rm -rf /opt/data-history/redis/$clear_hour

设置每天备份一次,保留一个月

crontab -e

0 0 * * * sh /root/tools/redis_rdb_bak_daily.sh

vim /root/tools/redis_rdb_bak_daily.sh

#!/bin/sh 

history_date=`date +%Y%m%d`
rm -rf /opt/data-history/redis/$history_date
mkdir -p /opt/data-history/redis/$history_date
cp /usr/local/redis-5.0.5/data/dump.rdb /opt/data-history/redis/$history_date

clear_date=`date -d -1month +%Y%m%d`
rm -rf /opt/data-history/redis/$clear_date
### 如何配置 Redis 定时自动备份方案 #### 使用 RDB 方式的定时备份 为了实现 Redis定时自动备份,可以利用 Redis 自带的持久化机制之一——RDB (Redis Database Backup),通过设置 `save` 参数来触发定期保存操作。具体来说,在 Redis 配置文件中调整如下参数: ```conf save 900 1 save 300 10 save 60 10000 ``` 上述配置意味着在满足任意条件的情况下就会创建一个新的快照[^1]。 除了修改配置外,还可以编写脚本来自动化这一过程并加入系统的计划任务中执行。下面是一个简单的 shell 脚本例子用于每日复制一次当前的 dump.rdb 文件至特定位置作为备份副本: ```bash #!/bin/bash # 获取今天的日期字符串形式 YYYYMMDD current_date=$(date +"%Y%m%d") # 创建当天的新目录存放此次备份 mkdir -p "/usr/local/redis/snapshotting/${current_date}" # 将现有的 RDB 文件拷贝到新建立的子目录下 cp /var/lib/redis/dump.rdb "/usr/local/redis/snapshotting/${current_date}/" # 清理一个月前的老备份记录 old_backup_dir="/usr/local/redis/snapshotting/" one_month_ago=$(date --date='now -1 month' +"%Y%m%d") rm -r "${old_backup_dir}${one_month_ago}" ``` 此脚本实现了每天生成新的备份并将超过一定时间范围之外的历史版本移除的功能[^4]。 对于 Linux 系统而言,可以通过 crontab 来安排该脚本周期性的运行。编辑用户的 cron 表单(`crontab -e`) 并添加一行定义何时以及多久重复一次这个命令序列,例如每晚凌晨两点整执行备份工作: ```plaintext 0 2 * * * /path/to/your/script.sh >> /path/to/logfile.log 2>&1 ``` 这样就可以确保即使服务器意外重启也能继续维持规律化的备份流程[^3]。 另外值得注意的是,由于内存中的键可能因为设置了生存时间(TTL)而自然消失,或是因应策略被主动驱逐出去;因此建议结合实际情况合理规划保留期限内的历史数据量级,以免占用过多存储空间[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值