1数据迁移
将当前生产环境的redis数据库完整迁移到新集群数据库中,迁移的数据库要保证数据的正确性和完整性。
数据迁移的总体原则是尽可能保持原始数据的一致性,不改变数据内容,尽可能的减少数据变化造成的前后台交易变化。
完成数据迁移方式:采用rbd文件迁移方式完成迁移工作。
1.2迁移内容
本次数据迁移将包括电子银行反欺诈系统的reids数据库的所有缓存等数据。
1.2.1 slots与数据迁移
由于新集群与旧集群的节点数量不一致,之后需要解决slots槽的分配问题,具体如下。
1.2.1.2slots分配
redis一共有16383个slots,之前有12个主节点,每个节点有1365个slots,新集群有20个主节点,平均每个槽有819个slots。
1.3迁移过程
1.3.1Rdb迁移过程
rdb工具实施大致流程:
1、安装redis,配置好新的集群,确认集群正常,集群节点数量与旧集群主从节点数量一致
2、停止反欺诈系统应用,等待10分钟待数据处理完
3、在登录到redis每个主节点上执行save生成dump.rdb文件
4、将dump.rdb分别拷贝到新集群的12个主节点上(在拷贝dump文件时,应保证拷贝出的节点和拷贝入的节点在各自集群中的solts段位一致,否则无法迁移成功。)
5、重起有dump.rdb文件的节点
6、通过dbsize命令核对新老集群key的数量是否一致,确认数据完全迁移成功
7、在新集群上的redis\src上执行./redis-trib.rb add-node nodex node1将不再集群中的节点加入集群
8、在想要这只的从节点上登录到redis执行cluster replicate node id(想要设置的主节点id)配置完成其他的主从节点
7、在新集群上的redis\src上执行./redis-trib.rb reshard --from node1 --to node2 --slots n --yes node1进行slots分配
8、在新集群执行./redis-trib.rb check node1查看各个solts的分配情况,确认所有的slots平均分配到所有的节点上。