Redis-full-check:终极Redis数据一致性验证工具,3步轻松搞定数据对比!
Redis-full-check是一款由阿里巴巴云数据库NoSQL团队研发的高效Redis数据对比工具,支持从2.x到7.x的所有Redis版本(不支持Redis Modules),通过多轮迭代比较技术确保两个Redis实例的数据完全一致。无论是数据迁移验证、故障排查还是日常监控,它都能为Redis管理员和开发者提供可靠的数据一致性保障。
📌 为什么选择Redis-full-check进行数据验证?
在Redis数据迁移或双活架构中,数据一致性是核心诉求。传统手动比对方式效率低下且易出错,而Redis-full-check通过智能迭代对比算法和SQLite3中间存储技术,实现了低侵入式的高效数据验证,让你轻松掌控Redis数据状态。
✅ 核心优势解析
- 全面兼容:完美支持Standalone、Cluster、Proxy(阿里云/腾讯云集群)等多种部署模式,覆盖Redis 2.x至7.x全版本
- 高效对比:采用多轮迭代收敛策略,首次全量对比后仅针对差异数据进行校验,大幅降低Redis实例负载
- 灵活配置:可自定义QPS限制(默认15000)、并行协程数(1-100)、批处理大小(1-10000)等参数,适应不同性能需求
- 精准定位:将差异数据(键/字段级别)存储于SQLite3数据库,支持生成结构化差异报告,便于问题追溯

Redis-full-check多轮迭代对比流程图,展示数据从抓取到差异收敛的完整过程
🚀 快速上手:3步完成Redis数据对比
1️⃣ 环境准备与安装
# 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/re/RedisFullCheck
cd RedisFullCheck
# 编译可执行文件(需Go环境支持)
./build.sh
# 查看版本信息验证安装
./bin/redis-full-check -v
2️⃣ 核心参数配置指南
| 参数类别 | 关键参数 | 作用说明 |
|---|---|---|
| 数据源配置 | -s host:port / -t host:port |
指定源/目标Redis地址(支持集群地址) |
| 认证信息 | -p password / -a password |
源/目标Redis密码(格式:密码 或 用户名:密码) |
| 对比控制 | --comparetimes 3 |
迭代对比次数(默认3次,建议生产环境使用3-5次确保数据稳定) |
| 性能优化 | -q 10000 --parallel 8 |
设置QPS限制(如10000)和并行协程数(如8),避免影响线上服务 |
| 结果输出 | --result diff.txt --log check.log |
指定差异结果文件和日志文件路径 |
3️⃣ 实战对比命令示例
# 基础对比命令(默认配置)
./bin/redis-full-check \
-s 192.168.1.100:6379 -p sourcePass \
-t 192.168.1.200:6379 -a targetPass \
--log /var/log/redis-check.log
# 高级配置:限制QPS+过滤特定键+生成差异报告
./bin/redis-full-check \
-s 192.168.1.100:6379 \
-t 192.168.1.200:6379 \
-q 8000 --parallel 10 \
-f "user:*|order*" \ # 仅对比user前缀和order相关键
--result /data/redis-diff-$(date +%F).txt
📊 差异结果解读与分析
对比完成后,可通过SQLite3数据库文件(默认result.db)或指定的结果文件查看差异详情。以下是典型的差异分析场景:
键级别差异示例
sqlite3 result.db
sqlite> SELECT key, type, conflict_type, source_len, target_len FROM key;
| key | type | conflict_type | source_len | target_len |
|---|---|---|---|---|
| user:1001 | string | value | 64 | 63 |
| order:202305 | hash | lack_target | 8 | 0 |
字段级别差异示例
sqlite> SELECT key_id, field, conflict_type FROM field;
| key_id | field | conflict_type |
|---|---|---|
| 5 | address | value |
| 5 | phone | lack_source |
💡 最佳实践与性能优化
-
生产环境部署建议
- 选择业务低峰期执行对比任务,设置合理QPS限制(如线上Redis实例QPS的30%)
- 对超过10GB的大实例,建议分批次使用
-f参数进行前缀过滤对比
-
双方向验证方案 为确保数据完全一致,建议执行双向对比:
# 正向对比:源→目标 ./bin/redis-full-check -s src -t dst --result forward.diff # 反向对比:目标→源 ./bin/redis-full-check -s dst -t src --result backward.diff -
配合监控工具使用 通过
--metric参数生成性能指标文件,结合Prometheus等工具监控对比过程:./bin/redis-full-check ... --metric /var/lib/redis/metrics.json
🛠️ 常见问题解决方案
Q:对比过程中Redis实例CPU飙升怎么办?
A:通过-q参数降低QPS限制(如从15000调整至5000),或减少--parallel并行协程数,命令示例:
./bin/redis-full-check ... -q 5000 --parallel 3
Q:如何只对比特定前缀的键?
A:使用-f参数指定过滤列表,支持前缀匹配(*通配符),例如:
./bin/redis-full-check ... -f "session:*|cache*"
Q:生成的差异结果如何导出为CSV?
A:通过SQLite3命令导出:
sqlite3 -header -csv result.db "SELECT * FROM key;" > key_diff.csv
📄 许可证信息
Redis-full-check从2023年4月27日起采用Apache 2.0许可证(版本1.4.10及以上),1.4.10之前版本使用GPLv3许可证。详细条款请参见项目根目录下的LICENSE文件。
无论是Redis集群迁移后的一致性校验,还是双活架构的日常数据巡检,Redis-full-check都能以其高效、精准、低侵入的特性,成为你Redis数据管理的得力助手。立即尝试,让Redis数据一致性验证变得简单高效!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0220- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
AntSK基于.Net9 + AntBlazor + SemanticKernel 和KernelMemory 打造的AI知识库/智能体,支持本地离线AI大模型。可以不联网离线运行。支持aspire观测应用数据CSS01