redis cluster数据迁移

1、首先确定集群状态,搭建new redis cluster请看前面的文章

集群1迁移集群2

集群模式:1
192.168.121.17:7001,
192.168.121.17:7002,

192.168.121.18:7003,
192.168.121.18:7004,

192.168.121.19:7005,
192.168.121.19:7006  

集群模式:2
10.192.64.29:7001,
10.192.64.29:7002,

10.192.64.30:7003,
10.192.64.30:7004,

10.192.64.31:7005,
10.192.64.31:7006
[root@BJ-FT-VM-121-117 ~]# /apps/usr/redis/bin/redis-cli -c -p 7001 -h 192.168.121.117 -a  
123456
#-c 是指定以集群的状态登录
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.121.117:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384     #卡槽分配个数
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3     #集群成员3个    
cluster_current_epoch:7
cluster_my_epoch:7
cluster_stats_messages_ping_sent:24773582
cluster_stats_messages_pong_sent:24382472
cluster_stats_messages_sent:49156054
cluster_stats_messages_ping_received:24382472
cluster_stats_messages_pong_received:24771892
cluster_stats_messages_fail_received:2
cluster_stats_messages_publish_received:659
cluster_stats_messages_update_received:2
cluster_stats_messages_received:49155027

#集群每个节点的状态
192.168.121.117:7001> cluster nodes
cf4c42e0cfd4d2d39e2244d5daaf7d555da89dce 192.168.121.117:7001@17001 myself,slave 5f80cc81fbdc0beec97c2ef89630a149947bafc5 0 1635992135000 1 connected
2e5ab27928795dd8e6816ad654a21688df8c3b39 192.168.121.118:7003@17003 master - 0 1635992136000 3 connected 5461-10922
e05b4dfe3cd41182a4c513eefa99ab6aa923a0f4 192.168.121.119:7005@17005 master - 0 1635992136585 5 connected 10923-16383
2249e0bf4c4b841fbe09d6aedb88a8870010bc67 192.168.121.117:7002@17002 slave e05b4dfe3cd41182a4c513eefa99ab6aa923a0f4 0 1635992137587 5 connected
5f80cc81fbdc0beec97c2ef89630a149947bafc5 192.168.121.118:7004@17004 master - 0 1635992137000 7 connected 0-5460
c1241f55794933ba799cd163543327caf18541a5 192.168.121.119:7006@17006 slave 2e5ab27928795dd8e6816ad654a21688df8c3b39 0 1635992133000 6 connected

2、对应每个卡槽分配的位置,相对应

老集群 master

192.168.121.118:7004@17004 master - 0 1635992137000 7 connected 0-5460
192.168.121.118:7003@17003 master - 0 1635992136000 3 connected 5461-10922
192.168.121.119:7005@17005 master - 0 1635992136585 5 connected 10923-16383

新集群 master

10.192.64.29:7001@17001 myself - 0 1636004716000 1 connected 0-5460
10.192.64.30:7003@17003 master - 0 1636004718563 3 connected 5461-10922
10.192.64.31:7005@17005 master - 0 1636004718000 5 connected 10923-16383

 3、备份老集群rdb

实现RDB方式
save: 同步,会阻赛其它命令,不推荐使用
bgsave: 异步后台执行,不影响其它命令的执行

进入老集群的每个 master 节点

/apps/usr/redis/bin/redis-cli -c -p 7003 -h 192.168.121.118 -a 123456
bgsave

/apps/usr/redis/bin/redis-cli -c -p 7004 -h 192.168.121.118 -a 123456
bgsave

/apps/usr/redis/bin/redis-cli -c -p 7005 -h 192.168.121.119 -a 123456
bgsave

 4、把相应对的槽位置 0-5460 5461-10922  10923-16383 的RDB拷贝到相同槽位

#每台的分配好的槽位数一定要对应好!!!

$ls /apps/redis/data/dump.rdb 
/apps/redis/data/dump.rdb

5、假如对数据要求度不高,不用 拷贝appendonly.aof文件,默认新安装的集群 /apps/redis/etc/redis.conf 文件 appendonly no ,所以可以直接重启新集群,启动好新集群,然后在redis-cli 里面开启appendonly yes,让它主动生成 appendonly.aof文件,然后在/apps/redis/etc/redis.conf 加上一行 appendonly yes,配置文件中的配置,开启直接重启redis cluster即可

10.192.64.29:7001> config get appendonly
1) "appendonly"
2) "no"

10.192.64.29:7001> config set appendonly yes
OK

10.192.64.29:7001> config get appendonly 
1) "appendonly"
2) "yes"


cat /apps/redis/conf/redis_7001.conf 
port 7001
bind 10.192.64.29
daemonize yes
pidfile /var/run/redis_7001.pid
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 25000

# rdb
save 900 1
save 300 10
save 60 10000
dbfilename dump_7001.rdb
dir /apps/redis/data/7001
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
rdb-save-incremental-fsync yes

#aof
appendonly yes
appendfilename "appendonly_7001.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-rewrite-incremental-fsync yes

loglevel notice
logfile /apps/redis/logs/redis-7001.logs
maxclients 15000
maxmemory 20gb
maxmemory-policy volatile-lru
protected-mode no


replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
repl-backlog-size 10mb
repl-timeout 120
masterauth 123456
#requirepass 123456

6、假如对数据要求度很高,拷贝appendonly.aof,然后配置里面直接添加 appendonly yes ,重启就可以

7、假如对数据完整度确保百分之百,建议把新集群的master变为老集群的slave 的节点,然后在分离开

8、验证数据完整

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_zilong

一分钱的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值