赞
踩
1、redis数据热迁移,先通过redis-shake工具实现。
2、再通过redis-full-check检查迁移后的数据是否想同。
3、redis-shake版本下载:
https://github.com/tair-opensource/RedisShake/releases4、redis-full-check版本下载:
https://github.com/tair-opensource/RedisFullCheck/releases5、中文资料
https://github.com/tair-opensource/RedisShake/wiki
redis-shake 支持特性:
高性能
.在 Redis 5.0、Redis 6.0 和 Redis 7.0 上测试
.支持使用lua自定义过滤规则
.支持大实例迁移
.支持restore模式和sync模式
.支持阿里云 Redis 和 ElastiCache
1、 安装redis-shake mkdir -p /data/redis-shake tar -zxvf redis-shake-linux-amd64.tar.gz -C /data/redis-shake 2、创建配置文件 [root@VM-0012725 redis-shake]# cat redis.toml ### type = "sync" [source] version = 6.2 address = "x.x.x.x:6379" username = "" password = "passwd" tls = false elasticache_psync = "" [target] type = "standalone" # "standalone" or "cluster" version = 6.2 address = "x.x.x.x:6379" username = "" password = "passwd" tls = false [advanced] metrics_port = 9444 3、执行命令 cd /data/redis-shake ./redis-shake redis.toml 说明: 1)以下图所示:同步redis数据成功
1、安装redis-full-check mkdir -p /data/redis-full-check tar -zxvf redis-full-check-1.4.10.tar.gz -C /data/redis-full-check 2、参数说明 -s, --source=SOURCE 源redis库地址(ip:port),如果是集群版,那么需要以分号(;) 分割不同的db,只需要配置主或者从的其中之一。例如: 10.1.1.1:1000;10.2.2.2:2000;10.3.3.3:3000。 -p, --sourcepassword=Password 源redis库密码 --sourceauthtype=AUTH-TYPE 源库管理权限,开源reids下此参数无用。 --sourcedbtype= 源库的类别,0:db(standalone单节点、主从),1: cluster (集群版),2: 阿里云 --sourcedbfilterlist= 源库需要抓取的逻辑db白名单,以分号(;)分割,例如:0;5;15 表示db0,db5和db15都会被抓取 -t, --target=TARGET 目的redis库地址(ip:port) -a, --targetpassword=Password 目的redis库密码 --targetauthtype=AUTH-TYPE 目的库管理权限,开源reids下此参数无用。 --targetdbtype= 参考sourcedbtype --targetdbfilterlist= 参考sourcedbfilterlist -d, --db=Sqlite3-DB-FILE 对于差异的key存储的sqlite3 db的位置,默认result.db --comparetimes=COUNT 比较轮数 -m, --comparemode= 比较模式,1表示全量比较,2表示只对比value的长度,3只对比 key是否存在,4全量比较的情况下,忽略大key的比较 --id= 用于打metric --jobid= 用于打metric --taskid= 用于打metric -q, --qps= qps限速阈值 --interval=Second 每轮之间的时间间隔 --batchcount=COUNT 批量聚合的数量 --parallel=COUNT 比较的并发协程数,默认5 --log=FILE log文件 --result=FILE 不一致结果记录到result文件中,格式:'db diff-type key field' --metric=FILE metric文件 --bigkeythreshold=COUNT 大key拆分的阈值,用于comparemode=4 -f, --filterlist=FILTER 需要比较的key列表,以分号(;)分割。例 如:"abc*|efg|m*"表示对比'abc', 'abc1', 'efg', 'm', 'mxyz',不对比'efgh', 'p'。 -v, --version 3、数据对比 ./redis-full-check -s "x.x.x.x:6379" -p "passwd" --sourcedbtype=0 --sourcedbfilterlist=0 -t "x.x.x.x:6379" -a "passwd" --targetdbtype=0 说明:以下图所示,新redis数据库和旧redis数据相同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。