目的
如何把一个redis单节点的数据迁移到 redis集群中
方案:
使用命令redis-cli --cluster import 导入数据至集群
--cluster-from <arg>
--cluster-from-user <arg> 数据源用户
--cluster-from-pass <arg> 数据源密码
--cluster-from-askpass
--cluster-copy #migrate时指定类型为copy
--cluster-replace #migrate时指定类型为replace
命令如下:
redis-cli --cluster import -a cc 192.168.100.32:9001 --cluster-from 192.168.100.32:6379 --cluster-copy --cluster-replace
- 外部Redis实例(192.168.100.32:6379)的数据导入到集群中
- –cluster-replace 如果集群(192.168.100.32:9001)中存在外部redis实例(192.168.100.32:6379)的key,则192.168.100.32:6379会覆盖掉(192.168.100.32:9001)中的value
- –cluster-copy 默认情况下,import 命令在向集群导入数据的同时,还会删除单机服务器中源数据。如果用户想要保留单机服务器中的数据,那么可以在执行命令的同时给定 --cluster-copy 选项
迁移数据量验证:
单节点 key数量1000:
集群key 数量1000:
至此数据实现平滑迁移。
数据覆盖验证
集群数据准备
数据源准备:
迁移验证:
确定 目标集群的key的值已经被覆盖。