环境说明

单机redis

192.168.41.101:

redis集群

192.168.41.101:7000 master
192.168.41.101:7001 master
192.168.41.101: 192.168.41.102:7000 master
192.168.41.102:
192.168.41.102:

迁移步骤

查看集群状态及节点槽分布

[root@blaze bin]# ./redis-cli -c -p 7000
127.0.0.1:7000> cluster nodes
ab6d9f956de325cb4cf001abc31df365a5db5234 192.168.41.102:7001 slave 923c9ea13ec8fc19bed309dfbfad094320e1ca41 0 1560304528263 7 connected
48629733acbb8a580a39403dfac92845d63c97b3 192.168.41.101:7001 master - 0 1560304529768 2 connected 5461-10921
2cec8ac00f760c45d86f7903cefad85ec36704e7 192.168.41.102:7002 slave 923c9ea13ec8fc19bed309dfbfad094320e1ca41 0 1560304531271 7 connected
923c9ea13ec8fc19bed309dfbfad094320e1ca41 192.168.41.101:7000 myself,master - 0 0 7 connected 0-5460
e65b319e83997ed6f5323a26aaccba3f35522cbd 192.168.41.101:7002 slave 923c9ea13ec8fc19bed309dfbfad094320e1ca41 0 1560304532274 7 connected
5c0888d5bcceda2904311cbd5405596217c48105 192.168.41.102:7000 master - 0 1560304530268 4 connected 10922-16383
[root@blaze src]# ./redis-trib.rb check 192.168.41.101:7000
>>> Performing Cluster Check (using node 192.168.41.101:7000)
M: 923c9ea13ec8fc19bed309dfbfad094320e1ca41 192.168.41.101:7000
slots:0-5460 (5461 slots) master
3 additional replica(s)
S: ab6d9f956de325cb4cf001abc31df365a5db5234 192.168.41.102:7001
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
M: 48629733acbb8a580a39403dfac92845d63c97b3 192.168.41.101:7001
slots:5461-10921 ( slots) master
0 additional replica(s)
S: 2cec8ac00f760c45d86f7903cefad85ec36704e7 192.168.41.102:7002
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
S: e65b319e83997ed6f5323a26aaccba3f35522cbd 192.168.41.101:7002
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
M: 5c0888d5bcceda2904311cbd5405596217c48105 192.168.41.102:7000
slots:10922-16383 ( slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

把101:7001和102:7000两个master的slots转移到101:7000上

./redis-trib.rb reshard --from 5c0888d5bcceda2904311cbd5405596217c48105 --to 923c9ea13ec8fc19bed309dfbfad094320e1ca41  --slots 5462 --yes 192.168.41.101:7000

./redis-trib.rb reshard --from 48629733acbb8a580a39403dfac92845d63c97b3 --to 923c9ea13ec8fc19bed309dfbfad094320e1ca41  --slots 5461 --yes 192.168.41.101:7000

查看转以后槽点分配

>>> Performing Cluster Check (using node 192.168.41.101:7000)
M: 923c9ea13ec8fc19bed309dfbfad094320e1ca41 192.168.41.101:7000
slots:0-16383 (16384 slots) master
3 additional replica(s)
S: ab6d9f956de325cb4cf001abc31df365a5db5234 192.168.41.102:7001
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
M: 48629733acbb8a580a39403dfac92845d63c97b3 192.168.41.101:7001
slots: (0 slots) master
0 additional replica(s)
S: 2cec8ac00f760c45d86f7903cefad85ec36704e7 192.168.41.102:7002
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
S: e65b319e83997ed6f5323a26aaccba3f35522cbd 192.168.41.101:7002
slots: (0 slots) slave
replicates 923c9ea13ec8fc19bed309dfbfad094320e1ca41
M: 5c0888d5bcceda2904311cbd5405596217c48105 192.168.41.102:7000
slots: (0 slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

把192.168.41.101:6379的appendonly.aof 文件复制到101:7000的aof文件目录下

cp 6379目录/appendonly.aof   7000目录

重启101:7000节点加载aof文件

[root@blaze bin]# ./redis-cli -c -p 7000 shutdown

[root@blaze bin]# ./redis-server ../redis.conf 

查看数据是否正确

dbsize

将101:7000的槽 均匀分配给其他两个master节点

./redis-trib.rb reshard --from 923c9ea13ec8fc19bed309dfbfad094320e1ca41  --to 5c0888d5bcceda2904311cbd5405596217c48105  --slots 5462 --yes 192.168.41.101:7000

./redis-trib.rb reshard --from 923c9ea13ec8fc19bed309dfbfad094320e1ca41  --to 48629733acbb8a580a39403dfac92845d63c97b3  --slots 5461 --yes 192.168.41.101:7000

再次查看集群状态和槽分配。

Redis单实例数据迁移到集群的更多相关文章

  1. KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例

    案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...

  2. Redis单节点数据同步到Redis集群

    一:Redis集群环境准备 1:需要先安装好Redis集群环境并配置好集群 192.168.0.113 7001-7003 192.168.0.162 7004-7006 2:检查redis集群 [r ...

  3. Redis安装(单机及各类集群,阿里云)

    Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很 ...

  4. Linux下redis 的部署、主从与集群

    老男孩Python全栈6期——redis--------------------------Linux 操作系统 默认的内存管理机制RSS:page cache:anno page:Linux操作系统 ...

  5. redis 5.0.3 讲解、集群搭建

    REDIS 一 .redis 介绍 不管你是从事Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了 ...

  6. 实现Redis Cluster并实现Python链接集群

    目录 一.Redis Cluster简单介绍 二.背景 三.环境准备 3.1 主机环境 3.2 主机规划 四.部署Redis 4.1 安装Redis软件 4.2 编辑Redis配置文件 4.3 启动R ...

  7. Redis主从同步、哨兵、集群

    什么是主从同步(复制) 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点 ...

  8. Redis详解(七)——集群

    Redis详解(七)--集群 ​Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是 ...

  9. Redis系列5:深入分析Cluster 集群模式

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) 1 背景 前面我们 ...

随机推荐

  1. Python进入后台界面(admin)设定

    前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: ※特别要注意下面标红颜色的部分[] 一般情况下不需要修改什么东西 ...

  2. python数据结构_递归_汉诺塔问题

    已经不是第一次写这个汉诺塔问题, 其实递归还真是不太好理解, 因为递归这种是想其实有点反人类, 为什么? 因为不太清楚, 写个循环一目了然, 用递归其实要把核心逻辑理清楚, 要不根本没法进行下去 所有 ...

  3. BS

  4. Druid基本配置

    最近公司要用Druid 所以看了下基本配置及配置过程中出现的问题 Druid是什么? Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时 ...

  5. python学习-50 pickle模块

    pickle模块 与json方法是一样的 import pickle dic = {'} print(type(dic)) a = pickle.dumps(dic) print(type(a)) f ...

  6. GPIO 输出—使用固件库点亮 LED

    编程要点 1. 使能 GPIO 端口时钟:  2. 初始化 GPIO 目标引脚为推挽输出模式:  3. 编写简单测试程序,控制 GPIO 引脚输出高.低电平. LED的电路图 过程: 1.拷贝一个库函 ...

  7. golang goroutine进行通信 channel

    1.channel的读取与声明 //goroutine之间利用channel进行通信 package main import ( "fmt" "time" ) ...

  8. 【判环】Perpetuum Mobile

    Perpetuum Mobile 题目描述 The year is 1902. Albert Einstein is working in the patent office in Bern. Many ...

  9. jacascript Date 学习

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! Date dateObject.getDate();  返回一个月中的某一天(1-31) dateObje ...

  10. 微信小程序tabBar与redirectTo 或navigateTo冲突

    微信小程序tabBar与redirectTo 或navigateTo冲突 tabBar设置的pagePath无法再次被redirectTo或navigateTo引用 导致跳转失败,更改为swithTa ...