标签:
老大让把 一台机器上 redis 中所有的数据,迁移到另一台机器上
查了一下可以拷贝 rdb 文件, 此方法只适用于迁移到一个新的库, 迁移到正在使用的库就不行了
设置 master slave 也是可以的, 数据会自动同步,也很简单
最笨最容易想到的方法当然是写个脚本,从原库中读出所有数据,写入到另外一个库中
import redis redis_from = redis.StrictRedis(host=‘m.test.gengmei.cc‘, 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) else: print ‘not known type‘ cnt = cnt + 1 print ‘total‘, cnt
info 命令可以查看 key 的总数量,以确保所有数据都写入成功
# Keyspace
db0:keys=41,expires=0,avg_ttl=0
db10:keys=1,expires=1,avg_ttl=80109567
标签:
原文地址:http://www.cnblogs.com/lesliefang/p/4711204.html