redis 单实例迁移到cluster实战

大部分应用在使用Redis的时候可能前期只使用一个实例,随着数据量和访问量增大,单实例逐渐捉襟见肘,就需要考虑上Cluster方案了,本文提供了一个方案,就是把单实例的数据完整的迁移到Cluster上。

 

方案步骤

 

1)获取原单实例节点D的持久化AOF文件

 

2)新准备三个节点A,B,C,建立集群,目前集群为空

 

3)把节点B,C上的slots,全部分配给A

 

4)把1)中获取的AOF文件SCP到A上

 

5)重启A节点,把数据全部加载到内存

 

6)把A节点上的slots再均匀分配给B,C

 

7)新准备A1,B1,C1,分别作为A,B,C的slave加入到集群

 

8)验证数据的完整性和集群状态

 

 

 

方案实战

 

目前我们的实战是这样的,单节点为 10.10.10.118:6379 ,数据量为 500多万

 

Cluster准备了3主3从,前期A,B,C构成一个空的集群,A1,B1,C1待数据分配好后,再加入集群

 

A 10.10.10.126:7000 -> A1 10.10.10.126:7003

 

B 10.10.10.126:7001 -> B1 10.10.10.126:7004

 

C 10.10.10.126:7002 -> C1 10.10.10.126:7005

 

管理集群,我们仍然使用官方提供的工具redis-trib.rb,具体redis-trib.rb如何使用,请参考Cluster实战的那篇文章。

 

1)持久化文件

 

在单实例中假如同时开启了RDB和AOF,还是只要AOF文件就可以了,因为当AOF和RDB同时存在的时候,Redis还是会先加载AOF文件的。

 

进入 10.10.10.118:6379 我们执行命令

 

[root@TEST01 bin]# ./redis-cli

127.0.0.1:6379>

 

127.0.0.1:6379> dbsize

(integer) 5160702

127.0.0.1:6379> BGREWRITEAOF

Background append only file rewriting started

 

然后到配置AOF所在的目录,这样就会获取了最新的AOF文件。注意红色数字是key的数量,等数据全部倒入集群后,要验证这个数量是否正确。

127.0.0.1:9004> BGSAVE

操作注意

1,此时查看key数量

# Keyspace

db0:keys=400594,expires=102024,avg_ttl=1579970001,

2,查看所有连接情况,确保没有连接,

127.0.0.1:9004> client list

 

2)创建集群

 

2.1)启动A,B,C节点

 

/data/apps/redis-cluster/7000/bin/redis-server /data/apps/redis-cluster/7000/redis.conf

/data/apps/redis-cluster/7001/bin/redis-server /data/apps/redis-cluster/7001/redis.conf

/data/apps/redis-cluster/7002/bin/redis-server /data/apps/redis-cluster/7002/redis.conf

 

2.2)3个Master节点构成集群

 

[root@test1 bin]# ./redis-trib.rb create 10.10.10.126:7000 10.10.10.126:7001 10.10.10.126:7002

>>> Creating cluster

>>> Performing hash slots allocation on 3 nodes...

Using 3 masters:

10.10.10.126:7000

10.10.10.126:7001

10.10.10.126:7002

M: 6a85d385b2720fd463eccaf720dc12f495a1baa3 10.10.10.126:7000

slots:0-5460 (5461 slots) master

M: bbb2b1b060b440a56d07a16ee7f87f9379767d61 10.10.10.126:7001

slots:5461-10922 (5462 slots) master

M: e7005711bc55315caaecbac2774f3c7d87a13c7a 10.10.10.126:7002

slots:10923-16383 (5461 slots) master

Can I set the above configuration? (type 'yes' to accept): yes

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join.

>>> Performing Cluster Check (using node 10.10.10.126:7000)

M: 6a85d385b2720fd463eccaf720dc12f495a1baa3 10.10.10.126:7000

slots:0-5460 (5461 slots) master

M: bbb2b1b060b440a56d07a16ee7f87f9379767d61 10.10.10.126:7001

slots:5461-10922 (5462 slots) ma

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值