在 CentOS 上备份 Redis,常见有RDB 备份、AOF 备份、手动拷贝文件、主从复制几种方式。下面按最常用、最实用的方式给你说明。
先看 Redis 配置文件:
vim /etc/redis.conf
重点关注:
dir /var/lib/redis
dbfilename dump.rdb
appendonly yes
appendfilename "appendonly.aof"
常见路径:
/var/lib/redis/dump.rdb/var/lib/redis/appendonly.aofredis-cli save
# 或(不阻塞)
redis-cli bgsave
然后拷贝文件:
cp /var/lib/redis/dump.rdb /backup/redis/dump_$(date +%F).rdb
⚠️ 不建议直接 cp 正在写入的 RDB,最好先 bgsave
redis-cli bgsave
sleep 5
cp /var/lib/redis/dump.rdb /backup/redis/
AOF 同理:
cp /var/lib/redis/appendonly.aof /backup/redis/
如果 appendonly yes:
可定期:
cp /var/lib/redis/appendonly.aof /backup/redis/
在另一台 CentOS:
replicaof <主RedisIP> 6379
从节点自动同步数据,相当于实时备份。
#!/bin/bash
BACKUP_DIR=/backup/redis
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
redis-cli bgsave
sleep 3
cp /var/lib/redis/dump.rdb $BACKUP_DIR/dump_$DATE.rdb
加入定时任务:
crontab -e
0 2 * * * /usr/local/bin/redis_backup.sh
把备份文件放回:
cp dump.rdb /var/lib/redis/
systemctl restart redis
如果你愿意,我可以:
你现在是单机还是集群?