redis 校验迁移后的数据
时间:2021-07-15
本文章向大家介绍redis 校验迁移后的数据,主要包括redis 校验迁移后的数据使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在Redis迁移完成后进行数据校验可以检查数据的一致性。
前提条件
- 已完成Redis迁移。
说明 云数据库Redis版相关迁移方法请参见迁移方案概览。
- 迁移源端和目的端Redis实例需为主从版、单节点版、开源集群版以及部分云上带proxy的集群版(阿里云、腾讯云)。
- 已创建用于运行redis-full-check的ECS实例,且ECS实例的系统为Linux,创建方法请参见创建ECS实例。
- ECS实例可以访问迁移源端和目的端Redis实例。
redis-full-check简介
如果Redis迁移的过程出现异常,源端与目的端Redis的数据将会不一致。使用redis-full-check进行校验能够找出异常数据,为数据对齐提供可靠依据。
redis-full-check是阿里云自研的Redis数据校验工具,能够提取源端和目的端的数据进行多轮差异化比较,并将比较结果记录在一个SQLite3数据库中,从而达到全量数据校验的目的。
说明 如需了解更多redis-full-check相关信息,请参见redis-full-check Github主页。
操作步骤
- 登录可以连接云数据库Redis版实例(目的端Redis)的ECS,相关操作请参见连接ECS实例。
- 在ECS中下载redis-full-check。
说明 建议您下载最新发布的版本。
- 解压redis-full-check.tar.gz。
tar -xvf redis-full-check.tar.gz
- 执行如下命令进行数据校验:
./redis-full-check -s "<Redis集群地址1连接地址:Redis集群地址1端口号;Redis集群地址2连接地址:Redis集群地址2端口号;Redis集群地址3连接地址:Redis集群地址3端口号>" -p <Redis集群密码> -t <Redis连接地址:Redis端口号> -a <Redis密码> --comparemode=1 --comparetimes=1 --qps=10 --batchcount=100 --sourcedbtype=1 --targetdbfilterlist=0
常用选项说明请见下表,如需了解更多选项及说明,请参见RedisFullCheck 配置说明。
表 1. redis-full-check常用选项说明 选项 说明 示例值 -s 源端Redis的连接地址和端口。 说明- 如果源Redis为集群版,每个集群地址间需要以半角分号(;)分割不同的连接地址。
- 集群地址前后需要添加半角双引号(")。
- 该选项必填。
r-bp1xxxxxxxxxxxxx.redis.rds.aliyuncs.com:6379
"10.xx.xx.1:7000;10.xx.xx.1:7001;10.xx.xx.2:7002;10.xx.xx.2:7003"
-p 源端Redis的密码。 SourcePwd233
-t 目的端Redis的连接地址和端口。 说明- 如果目的Redis为集群版,每个集群地址间需要以半角分号(;)分割不同的连接地址。
- 集群地址前后需要添加半角双引号(")。
- 该选项必填。
r-bp1xxxxxxxxxxxxx.redis.rds.aliyuncs.com:6379
"10.xx.xx.1:7000;10.xx.xx.1:7001;10.xx.xx.2:7002;10.xx.xx.2:7003"
-a 目的端Redis的密码。 TargetPwd233
--sourcedbtype 源库的类别: - 0:单节点版、主从版
- 1:集群版
- 2:阿里云/腾讯云
--sourcedbtype=1
--sourcedbfilterlist 源端Redis指定需要校验的DB。 说明- 开源集群版Redis无需填写该选项。
- 非开源集群版Redis不指定该选项表示校验所有DB。
- 多个DB之间使用半角分号(;)连接。
--sourcedbfilterlist=0;1;2
--targetdbtype 目的库的类别: - 0:单节点版、主从版
- 1:集群版
- 2:阿里云/腾讯云
--targetdbtype=0
--targetdbfilterlist 目的端Redis指定需要校验的DB。 说明- 开源集群版Redis无需填写该选项。
- 非开源集群版Redis不指定该选项表示校验所有DB。
- 多个DB之间使用半角分号(;)连接。
--targetdbfilterlist=0;1;2
-d 异常数据列表保存的文件名称,默认为result.db。 xxx.db
--comparetimes 校验次数。 - 该选项不填则默认为3次。
- 最小值为1。
- 无最大值,建议不超过5次。
--comparetimes=1 -m 校验模式。 - 1:全量校验
- 2:仅校验value的长度
- 3:仅校验key是否存在
- 4:全量对比的情况下,忽略大key的比较
1 --qps 限速阈值。 说明- 最小值为1。
- 最大值取决于服务器性能。
--qps=10 --filterlist 需要比较的key列表,以竖线(|)分割。 说明- abc*:表示匹配所有abc开头的key。
- abc:表示仅匹配abc这个key。
--filterlist=abc*|efg|m* 说明 执行完成后命令行输出校对结论,下方示例表示有2个不一致的key。如果此处为0,则两端数据一致。all finish successfully, totally 2 keys or fields conflict
- 查看保存异常key的SQLite3数据库。
原文地址:https://www.cnblogs.com/xiongyoutom/p/15016570.html
- 区块链技术发展前景可观,银链原子链已开始投入正常交易
- 分布式服务框架 dubbo/dubbox 入门示例
- SmtpClient发送邮件遭遇The specified string is not in the form required for a subject.
- 彻底解决WordPress 中 半角全角字符转义 的问题
- 利用Spring的@Async异步处理改善web应用中耗时操作的用户体验
- Oracle中使用Entity Framework 6.x Code-First方式开发
- 边缘计算推动AI发展 未来能摆脱云计算吗?
- intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理
- 微软.NET Core RC2正式发布,横跨所有平台
- 二帮主:央行数字货币的崛起,会给比特币带来什么影响
- cas原理介绍
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
- C#全角和半角转换
- 浅谈Scala在大数据处理方面的优势
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Linux如何生成随机数字和字符串
- linux(ubuntu)用户连续N次输入错误密码进行登陆时自动锁定X分钟
- linux下安装golang的方法
- Linux系统的文件传输方法
- CentOS 6.8 NFS 文件共享设置的方法
- linux如何mount挂载磁盘并设置开机自动mount的实现
- 浅谈Linux的编码及编码转换方法
- 在 Linux 上用 DNS 实现简单的负载均衡的方法
- centos7.2.1511安装jdk1.8.0_151及mysql5.6.38的方法
- Linux CentOS使用crontab设置定时重启的方法
- centos安装php5、卸载php、安装php7的教程
- centos7中crontab定时计划任务5分钟一次命令写法
- Ubuntu16.04 安装Teamviewer的教程详解
- 01 . OpenResty简介部署,优缺点,压测,适用场景及用Lua实现服务灰度发布
- 详解Linux iptables 命令