查找了一些redis迁移的方法,一般做法就是

1. 从源数据库把rdb文件保存,然后传到新的主机上,启动新的redis即可

2. 把新的redis当做源数据库的slave,同步数据

今天开发提了一个测试需求,要求把一个备份的rdb文件数据保存到另一个redis(110主机)的15号库中(默认的是0),这样就不会影响redis(110主机)原有的数据。我在网上找了一个python,实现了这个功能。下面是原文:

------------------------------------------

原文链接:http://www.cnblogs.com/lesliefang/p/4711204.html

老大让把 一台机器上 redis 中所有的数据,迁移到另一台机器上
查了一下可以拷贝 rdb 文件, 此方法只适用于迁移到一个新的库, 迁移到正在使用的库就不行了, 而且 rdb 里面是所有的 db, 你只想迁移某一个 db 也是不行的。
设置 master  slave 也是可以的, 数据会自动同步,也很简单
最笨最容易想到的方法当然是写个脚本,从原库中读出所有数据,写入到另外一个库中,如下:

# 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

现在有rdb文件,测试用redis(100),想要迁移rdb中数据到redis(110)的15号db中,而且不影响原有数据。进行如下操作

100:

1. 安装python,python的redis扩展

2. 将rdb文件放到redis-100的数据文件夹下,启动之后redis-100上就有了rdb的备份数据

3. 确认110重启之后,修改脚本文件中的redis_from和redis_to变量信息,运行脚本。

4. 等待脚本运行完成,到110上确认数据迁移完毕。

110:

1. 去掉认证设置

2. 重启redis

-------

最笨也许最好用。

最新文章

  1. 子元素使用float 父元素撑开方法
  2. spring data jpa分页
  3. 【File】递归删除文件夹中子级文件/夹,并删除文件夹
  4. 删除oracle表中的完全重复数据
  5. View (四)视图状态及重绘流程分析
  6. mysql登录时,ERROR 1045 (28000): 错误解决办法
  7. 之前采用的是Helper类的方法重构时改用了扩展方法
  8. Oracle查询死锁&杀死会话
  9. Spring Boot 集成 Mybatis
  10. mysql存储过程 基本语法
  11. Java多线程:线程池
  12. Quartz+ssm注解方式的最最最最简单使用
  13. JavaScript:鼠标拖拽效果
  14. Oracle :多表更新多个字段
  15. git撤销commit 并保存之前的修改
  16. hdoj:2076
  17. elasticsearch 动态增加副本
  18. php 获取URL
  19. Zookeeper的实际应用
  20. Redis常用命令速查 <第二篇>

热门文章

  1. UVA-10600.Contest and Blackout.(Kruskal + 次小生成树)
  2. SpringCloud Erueka配置异常
  3. Python 中的垃圾回收机制
  4. Python 中三大框架各自的应用场景??
  5. Python的魔法方法??
  6. Python 的 sys 模块常用方法?
  7. Python 函数知识总汇
  8. 行人重识别(ReID) ——技术实现及应用场景
  9. sqli(9)
  10. winsows CMD及Linux命令大全 欢迎补充