码迷,mamicode.com
首页 > 数据库 > 详细

redis 数据库迁移

时间:2015-08-07 18:32:55      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:

老大让把 一台机器上 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

 

redis 数据库迁移

标签:

原文地址:http://www.cnblogs.com/lesliefang/p/4711204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!