Redis集群数据迁移:redis-rdb-tools离线安装以及使用

Redis集群更迁操作
①.保存集群每一个节点数据 生成对应的多个dump.rdb文件
②.新建集群 将dump.rdb文件数据导入新建的集群中,导入完成后检查数据是否导入成功

①保存集群每一个节点数据 生成对应的多个dump.rdb文件


1.连接集群,确认集群分布在哪些服务器
redis-cli -h 10.45.128.47 -c -p 7000 cluster nodes|awk -F " " '{print $2}'|awk -F ":" '{print $1}'|uniq

2.连接集群,确认当前服务器上有哪些节点
Ex:
redis-cli -h 10.45.128.47 -c -p 7000 cluster nodes |grep 10.45.128.47|awk -F " " '{print $2}'|sort

然后依次连接到对应的节点 保存对应节点上的数据 
【每个节点生成文件后 就立刻拷贝文件 避免第二次的操作覆盖第一次的文件!
redis-cli -h 10.45.128.47 -c -p 7000
执行命令:
SAVE
保存成功后会显示ok


文件生成路径可以照以下方式搜索
=========================================================================
[root]/usr/local#ps -ef |grep redis
root      17360  62437  0 18:12 pts/0    00:00:00 grep --color redis
root     188797      1  0 12:34 ?        00:00:22 redis-server 10.45.128.47:7000 [cluster]
root     188799      1  0 12:34 ?        00:00:13 redis-server 10.45.128.47:7001 [cluster]
root     188803      1  0 12:34 ?        00:00:13 redis-server 10.45.128.47:7002 [cluster]
root     188807      1  0 12:34 ?        00:00:16 redis-server 10.45.128.47:7003 [cluster]
root     188811      1  0 12:34 ?        00:00:12 redis-server 10.45.128.47:7004 [cluster]
root     188817      1  0 12:34 ?        00:00:12 redis-server 10.45.128.47:7005 [cluster]
[root]/usr/local#pwdx 188797
188797: /usr/local/redis-cluster/7000
=========================================================================
 那么对应 [7000] 节点的[dump.rdb]文件就在 /usr/local/redis-cluster/7000下 

 到对应的目录下找到最新生成的dump.rdb文件,确认生成时间和操作时间一致
Ex:
-rw-r--r--. 1 root root 10738440 Oct 17 18:11 dump.rdb


确认服务器内存资源够的情况下
新建临时目录,目录下新建新节点目录名称

    原始集群用的8000-8005  那新建7000-7005的对应目录
并将各个节点对应的dump.rdb文件拷贝到对应的节点目录

#对应的目录自己看资源选择,以下命令只是示例
mkdir -p /mnt/temp/7000
cp /usr/local/redis-cluster/8000/dump.rdb /mnt/temp/7000

=======================================================
[root@localhost]/mnt/temp#ll 7000
total 10488
-rw-r--r--. 1 root root 10738440 Oct 17 18:19 dump.rdb
[root@localhost]/mnt/temp#
=======================================================

②.新建集群 将dump.rdb文件数据导入新建的集群中

新建集群操作和之前一致,不重复使用之前节点值即可
1.源码安装对应的安装包 这里我使用的redis-rdb-tools [离线源码安装]

自行下载安装包,永久有效分享~

链接:https://pan.baidu.com/s/1enOydXu0yug2hXwuJF9JeQ?pwd=1024 
提取码:1024 

===========================================================
=                                                Centos 系统                                                    =
===========================================================
tar -xvf Python-3.4.4.tgz
cd Python-3.4.4/
chmod 777 *
mkdir -p /usr/local/python3.4
./configure --prefix=/usr/local/python3.4/
make && make install
ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3.4
ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3
cd ..

tar -xvf redis-py-2.10.6.tar.gz
cd redis-py-2.10.6/
chmod 777 *
python3 setup.py install
cd ..

tar -xvf redis-py-cluster-1.3.6.tar.gz
cd redis-py-cluster-1.3.6/
chmod 777 *
python3 setup.py install
cd ..

tar -xvf py-redis-1.1.1.tar.gz
cd py-redis-1.1.1/
python3 setup.py install
cd ..

unzip redis-rdb-tools-master.zip
cd redis-rdb-tools-master/
chmod 777 *
python3 setup.py install
cd ../

tar -xvf python-lzf-0.2.4.tar.gz
cd python-lzf-0.2.4/
chmod 777 *
python3 setup.py install
cd ..

===========================================================
=                                                     SUSE 系统 SP12                                       =
===========================================================
tar -xvf Python-3.4.4.tgz
cd Python-3.4.4/
chmod 777 *
mkdir /usr/local/python3.4
./configure --prefix=/usr/local/python3.4/
make && make install
cd /usr/bin/
rm ./python
ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3.4
ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3
cd ../

tar -xvf setuptools-29.0.1.tar.gz
cd setuptools-29.0.1/
chmod 777 *
python3 setup.py build
python3 setup.py install
cd ..

tar -xvf redis-py-2.10.6.tar.gz
cd redis-py-2.10.6/
chmod 777 *
python3 setup.py install
cd ..

tar -xvf redis-py-cluster-1.3.6.tar.gz
cd redis-py-cluster-1.3.6/
chmod 777 *
python3 setup.py install
cd ..

tar -xvf py-redis-1.1.1.tar.gz
cd py-redis-1.1.1/
python3 setup.py install
cd ..

unzip redis-rdb-tools-master.zip
cd redis-rdb-tools-master/
chmod 777 *
python3 setup.py install
cd ../

tar -xvf python-lzf-0.2.4.tar.gz
cd python-lzf-0.2.4/
chmod 777 *
python3 setup.py install
cd ..


2.导入数据到新的集群
执行【find / -name rdb】命令查找到rdb文件所在
然后执行命令,将[dump.rdb]文件转成 json格式
/usr/local/bin/rdb --command json dump.rdb > dump.json
其他路径的情况:
/usr/local/python3.4/bin/rdb --command json dump.rdb > dump.json

上传配置文件[node.ini]
上传脚本[trans.py]
将两个文件拷贝到所的新建的节点目录下
vi修改node.ini 对应好当前服务器的reids用的IP 和对应的Port
Ex:
IP:10.45.128.47
Port:7000

最后执行脚本将数据导入新的集群
python3 trans.py

3.导入完成后检查数据是否导入成功
连接新的集群,对应的将一个节点上的数据save保存下来
将对应的dump.rdb文件 转换成 dump.json文件
cat dump.json |wc -l
检查这个节点的数据量是否和你之前生成的json文件的数据量一致 如果一致就没有问题

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值