方法一:離線遷移
通過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工具
解析、恢復、備份、同步
參考另一篇文章:
**方法四:**
主從同步遷移
步驟:
1.redis-cli 進入客戶端
2.連接主
> slaveof ip port
3.info查看是否複製成功
4.斷開主
> slavof no one