最近又在翻 黄老师的 《Redis 设计与实现》,想到几道面试题 结合实际生产过程中的一些步骤作为总结
问题
如上图如何能快速的从两个Redis实例怎么快速对比哪些数据不一致?
什么是数据不一致
- key不一致
- 相同key名 在不同实例上的数据类型不一致
- key 存在于源 redis 不存在目标 redis
- key 存在于 目标redis 不存在源redis
- value 不一致
- string 类型的值,在不同实例上不一致
- 其他类型,同
key
判断.
工具推荐
redis-full-check 是阿里云Redis&MongoDB团队开源的用于校验2个redis数据是否一致的工具,支持单节点、主从、集群版、以及多种proxy,支持同构以及异构对比,redis的版本支持2.x-5.x。
下载工具
目前仅支持 Linux环境 ,其他环境自行安装Golang
自行交叉编译
运行使用
参数说明
-t 目标库
-s 源库
./redis-full-check -t 10.101.72.137:30661 -s 10.101.72.137:30551
查看结果
# 三轮比较 则会参数三个 db 文件
sqlite3 result.db.1
> .tables
FINAL_RESULT field_1 key_1
> select * from key_1;