前提条件
数据迁移已完成(即迁移结束)。
准备工作
- 开通一台ECS云主机,要求能在ECS上访问通源和目标Redis实例。
- 下载redis-full-check执行文件(建议:1.4.8版本,示例:redis-full-check-1.4.8.tar.gz),用以接下来校验源和目标Redis数据。
操作步骤
- 登录ECS云主机,进入redis-full-check解压目录。
- 解压redis-full-check-1.4.8.tar.gz(tar -xvf redis-full-check-1.4.8.tar.gz),解压后的redis-full-check即为可执行文件。
- 命令说明:
参考命令: ./redis-full-check -s {源Redis连接地址} -p {源Redis密码} -t {目标Redis连接地址} -a {目标Redis密码} 实际执行: ./redis-full-check -s source_address -p source_password -t target_adress -a target_password 说明:源/目标连接地址为集群时,多个连接地址以英文分号(;)分隔
- 命令参数(可选)说明:
选项 | 说明 | 示例 |
---|---|---|
-s 或者 --source | 源Redis连接地址,如果是集群时,多个地址间以英文分号(;)分隔。 | -s source_address_1;source_address_2 |
-p 或者 --sourcepassword | 源Redis连接密码(不支持指定username)。 | -p password |
--sourcedbtype | 源Redis架构系列;0:标准主备/单机(默认),1:集群,2: aliyun proxy, 3: tencent proxy。 | --sourcedbtype 0 |
--sourcedbfilterlist | 源Redis需要对比的db,-1:表示对比所有db(默认),db1;db2:表示对比db1和db2。 | --sourcedbfilterlist 0;1 |
-t 或者 --target | 目标Redis连接地址,如果是集群时,多个地址间以英文分号(;)分隔。 | -t target_address_1;target_address_2 |
-a 或者 --targetpassword | 目标Redis连接密码(不支持指定username)。 | -a password |
--targetdbtype | 目标Redis架构系列;0:标准主备/单机(默认),1:集群,2: aliyun proxy, 3: tencent proxy。 | --targetdbtype 0 |
--targetdbfilterlist | 目标Redis需要对比的db,-1:表示对比所有db(默认),db1;db2:表示对比db1和db2。 | --targetdbfilterlist -1 |
--comparetimes | 对比轮数,默认:3,最小:1。 | --comparetimes 3 |
-m 或者 --comparemode | 校验模式,1:全量比较,2:只对比value的长度(默认),3:只校验key是否存在,4:全量比较,但是忽略大key的比较。 | -m 2 |
-q 或者 --qps | 最大的qps限制(默认:15000)。 | -q 15000 |
--interval | 相邻两轮校验的间隔时间(秒)(默认:5)。 | --interval 5 |
--loglevel | 日志级别,'debug', 'info', 'warn', 'error'(默认:info)。 | --loglevel info |
-f 或者 --filterlist | 需要比较的key列表,以竖线分割。 | -f abc |
-v 或者 --version | 输出redis-full-check版本。 | -v |
- 运行结果
-
出现以下字样时,表示校验完成。
all finish successfully, ……
-
校验明细。
sqlite3 result.db.3(3表示对比轮数) select * from key; select * from field; 说明:表key,field记录了数据冲突情况