查找了一些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

-------

最笨也许最好用。

使用rdb文件进行redis数据迁移--python脚本的更多相关文章

  1. Python进行Redis数据迁移

    Python进行Redis数据迁移 由于开发时的误操作,导致redis数据损坏,所以需要进行redis的数据迁移,网上大佬的教程基本都是需要下载附加工具,亦或是需要一些复杂的操作,个人觉得麻烦还不如写 ...

  2. Redis 数据迁移 & 数据审计

    Redis 数据迁移 安装迁移工具 # 安装依赖 [root@dbtest03 ~]# yum install -y automake libtool autoconf bzip2 git # 拉取工 ...

  3. Redis数据迁移方案

    场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: ...

  4. Redis数据迁移的三个方法

    为什么80%的码农都做不了架构师?>>>   1. rdb数据备份恢复方法 redis 127.0.0.1:6379> SAVE OK 或者 redis-cli -h 127. ...

  5. CVS 文件自动移 tag 的 Python 脚本

    CVS 文件自动移 tag 的 Python 脚本 背景 工作中使用的版本管理工具是 CVS,在两次发布中,如果修改的文件比较少,会选择用移 Tag 的方式来生成一个新 Tag 发布.文件比较少的情况 ...

  6. 运维脚本-elasticsearch数据迁移python3脚本

    elasticsearch数据迁移python3脚本 #!/usr/bin/python3 #elsearch 数据迁移脚本 #迁移工具路径 import time,os #下面命令是用到了一个go语 ...

  7. redis数据迁移操作

    redis客户端连接命令,分别连接旧环境中的主从redis Src目录下./redis-cli -h IP -p PORT 使用info replication 命令找出主redis使用客户端命令连接 ...

  8. Redis数据迁移同步工具(redis-shake)

    前言 最近线上一台自建redis服务的服务器频繁报警,内存使用率有点高,这是一台配置比较简陋(2C8G)的机子了,近期也打算准备抛弃它了.抛弃之前需对原先的数据进行迁移,全量数据,增量数据都需要考虑, ...

  9. redis数据迁移

    redis的备份和还原,借助了第三方的工具---redis-dump,  redis中使用redis-dump导出.导入.还原数据实例 1.安装redis-dump # yum install rub ...

随机推荐

  1. Spring boot集成Swagger,并配置多个扫描路径

    Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...

  2. Xilinx源语-------FDRE

    1.源语---FDRE FDRE代表一个单D型触发器,含的有五个信号分别为:  数据(data,D).时钟使能(Clock enable,CE).时钟(Clock).同步复位(synchronous ...

  3. ISC2016训练赛 phrackCTF--Classical CrackMe

    测试文件:https://static2.ichunqiu.com/icq/resources/fileupload/phrackCTF/REVERSE/CrackMe.rar 1.准备 获得信息 3 ...

  4. 攻防世界--re-for-50-plz-50

    RetDec是真的难安装,太笨了~~~ 1.准备 获取信息 32位文件 2.IDA打开 发现这是MIPS代码.本来准备安装RetDec,哎...还是恶补MIPS指令知识吧:https://www.cn ...

  5. 后台PDF返回Base64,前台接收预览

    读取已存在的PDF文件,path为绝对路径 string base64String = "";byte[] buffer=null; using (FileStream fs = ...

  6. 【转】DDR3和eMMC区别

    转自:https://www.cnblogs.com/debruyne/p/9186619.html DDR3内存条和eMMC存储器区别: 1. 存储性质不同:2. 存储容量不同:3. 运行速度不同: ...

  7. break语句、continue语句、goto语句的用法辨析

    1.break语句 break语句常使用在switch语句.循环体以及if语句中,它的作用是跳出循环,而且只能跳出一层循环. for (i = 0; i < 10; ++j) { for (j ...

  8. [python 学习] argparse模块

    https://docs.python.org/3/library/argparse.html#module-argparse

  9. 多组件共享-vuex

    1.解决多个组件共享同一状态数据问题1)多个视图共享同一状态2)来自不同视图的触发事件需要变更同一状态文档API:https://vuex.vuejs.org/zh/api/ 2.组件与store连接 ...

  10. 网络安全专家教你设置史上最安全的WiFi密码

    通过设置强密码可以防止WiFi被蹭网现象的发生,保证WiFi网络安全.那么我们的WiFi密码怎么设置才最安全呢? 提供以下设置建议: 1.WiFi密码设置尽量使用字母.数字和字符组成的密码.这种密码强 ...