在 CentOS 上备份 Redis,常见且推荐的方式是 RDB 快照备份 + AOF 文件备份,也可以直接拷贝数据文件。下面按生产环境常用方案给你说明。
先找到 Redis 的数据目录和配置文件:
ps -ef | grep redis
通常配置文件在:
/etc/redis.conf
查看数据目录:
grep "^dir" /etc/redis.conf
grep "^dbfilename" /etc/redis.conf
示例:
dir /var/lib/redis
dbfilename dump.rdb
redis-cli SAVE
或(非阻塞,推荐)
redis-cli BGSAVE
查看是否完成:
redis-cli LASTSAVE
cp /var/lib/redis/dump.rdb /backup/redis/dump_$(date +%F).rdb
建议写个脚本:
#!/bin/bash
BACKUP_DIR=/backup/redis
mkdir -p $BACKUP_DIR
redis-cli BGSAVE
sleep 5
cp /var/lib/redis/dump.rdb $BACKUP_DIR/dump_$(date +%F_%H%M).rdb
查看是否开启 AOF:
grep appendonly /etc/redis.conf
如果:
appendonly yes
AOF 文件一般在:
/var/lib/redis/appendonly.aof
备份:
cp /var/lib/redis/appendonly.aof /backup/redis/appendonly_$(date +%F).aof
✅ 建议 RDB + AOF 同时备份
systemctl stop redis
cp -a /var/lib/redis /backup/redis_$(date +%F)
systemctl start redis
⚠️ 冷备会影响业务,不建议线上使用。
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/bin/redis-cli BGSAVE && sleep 10 && cp /var/lib/redis/dump.rdb /backup/redis/dump_$(date +\%F).rdb
systemctl stop redis
cp dump.rdb /var/lib/redis/dump.rdb
chown redis:redis /var/lib/redis/dump.rdb
systemctl start redis
如果你愿意,我可以帮你:
直接把 redis.conf 发我即可。