在 CentOS 上迁移 Redis 配置,通常分为配置文件迁移和数据迁移两部分。下面按常见场景给你完整说明。
常见位置:
/etc/redis.conf
/etc/redis/redis.conf
/usr/local/redis/redis.conf
查看正在使用的配置:
ps -ef | grep redis
例如:
redis-server /etc/redis.conf
在原服务器:
scp /etc/redis.conf user@new_server:/etc/redis.conf
yum install epel-release -y
yum install redis -y
vim /etc/redis.conf
重点检查:
bind(是否允许远程)portdir(数据目录)requirepass(密码)appendonly重启 Redis:
systemctl restart redis
systemctl enable redis
redis-cli
CONFIG GET dir
假设返回:
/var/lib/redis
退出后执行:
redis-cli save
拷贝 RDB 文件:
scp /var/lib/redis/dump.rdb user@new_server:/var/lib/redis/
systemctl stop redis
cp /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.bak
mv dump.rdb /var/lib/redis/
chown redis:redis /var/lib/redis/dump.rdb
systemctl start redis
✅ 数据完整迁移
如果开启了 AOF:
appendonly yes
迁移:
/var/lib/redis/appendonly.aof
步骤同 RDB,只是文件不同。
适合线上环境。
replicaof old_ip old_port
masterauth old_password
同步完成后:
replicaof no one
redis-cli --rdb dump.rdb
或:
redis-cli -h old_host -p 6379 --scan | xargs redis-cli -h new_host -p 6379 set
redis-cli
dbsize
keys *
或:
redis-cli info persistence
查看日志:
journalctl -u redis
/var/log/redis/redis.log
chown -R redis:redis /var/lib/redis
vm.overcommit_memory=1
sysctl -p
如果你能告诉我:
我可以给你最合适的一种迁移方案。