方法一:离线迁移
通过RDB或者aof文件 RDB: 快 目的库必须开启才能用 步骤: 1.源库 执行 BGSAVE 2.copy 源库的.rdb文件至目标库 3.重启目标库 AOF: 慢 源库和目的库必须都开启才能用 步骤: 1.将源库的aof文件拷贝到目标库的数据目录中 (两种方法) 1.redis-cli -p 6380 --pipe < ./appendonly.aof 2.重启 建议采用RDB
方法二:
单库–>单库
脚本,性能差,不建议使用
#coding=utf-8 import redis redis_from = redis.StrictRedis(host='127.0.0.1', port=6379, db=10) redis_to = redis.StrictRedis(host='127.0.0.1', port=6379, db=0) if __name__ == '__main__': cnt = 0 for k in redis_from.keys(): data_type = redis_from.type(k) if data_type == 'string': v = redis_from.get(k) redis_to.set(k, v) elif data_type == 'list': values = redis_from.lrange(k, 0, -1) redis_to.lpush(k, values) elif data_type == 'set': values = redis_from.smembers(k) redis_to.sadd(k, values) elif data_type == 'hash': keys = redis_from.hkeys(k) for key in keys: value = redis_from.hget(k, key) redis_to.hset(k, key, value) else: print 'not known type' cnt = cnt + 1 print 'total', cnt
方法三:
阿里开源redis-shake工具
解析、恢复、备份、同步
参考另一篇文章:
blog.csdn.net/qq_34874784/article/details/110822231
方法四:
主从同步迁移
步骤:
1.redis-cli 进入客户端 2.连接主 > slaveof ip port 3.info查看是否复制成功 4.断开主 > slavof no one