最近需要迁移服务器数据,需要将A服务器的redis数据迁移到B服务器,不能覆盖B服务器数据。如果不考虑数据覆盖问题直接拷贝A服务器rdb文件就可以了。
1.开启A服务器AOF功能
由于之前没有开启AOF功能,如果开启了可以忽略这步
root@server: redis-cli config set appendonly yes
由于我关闭了config命令,所以报以下错误
root@server:/etc/redis# redis-cli config set appendonly yes
(error) ERR unknown command 'config'
修改redis.conf文件删除 rename-command CONFIG "" 配置
保存最新快照文件
#保存最新的快照,然后拷贝到安全的目录
127.0.0.1:6379> bgsave
Background saving started
然后重启redis服务,执行(注意:这个命令只是暂时开启AOF功能,重启服务后会失效,如果需要一直开启AOF功能需要修改redis.conf文件 appendonly yes,但是这种方式会使数据丢失,所以使用下面命令开启AOF功能)
root@server: redis-cli config set appendonly yes
开启后会在数据库目录生成appendonly.aof文件(数据库目录配置是redis.conf 的dir值)
2.迁移数据
迁移数据之前记得备份数据,保存快照文件
#保存最新的快照,然后拷贝到安全的目录
127.0.0.1:6379> bgsave
Background saving started
redis-cli -h 目标数据库ip地址 -p 6379 --pipe <appendonly.aof
迁移数据完成