RedisCompare 项目使用教程
1. 项目目录结构及介绍
RedisCompare 项目的目录结构如下:
rediscompare/
├── cmd/
│ └── main.go
├── commons/
│ ├── compare.go
│ └── ...
├── compare/
│ ├── single2single.go
│ ├── single2cluster.go
│ └── ...
├── docs/
│ └── images/
├── execyamlexample/
│ └── example.yml
├── globalzap/
│ └── logger.go
├── interact/
│ └── interactive.go
├── redisconfigparameters/
│ └── config.go
├── .drone.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_cn.md
├── go.mod
├── go.sum
├── main.go
└── makefile
目录结构介绍
- cmd/: 包含项目的启动文件
main.go
。 - commons/: 包含项目中常用的工具函数和模块,如
compare.go
。 - compare/: 包含不同场景下的比较逻辑,如
single2single.go
和single2cluster.go
。 - docs/: 包含项目的文档和图片资源。
- execyamlexample/: 包含 YAML 配置文件的示例。
- globalzap/: 包含日志配置和初始化逻辑。
- interact/: 包含交互式命令行模式的实现。
- redisconfigparameters/: 包含 Redis 配置参数的定义和处理逻辑。
- .drone.yml: Drone CI 的配置文件。
- .gitignore: Git 忽略文件列表。
- LICENSE: 项目许可证文件。
- README.md: 项目的英文介绍文档。
- README_cn.md: 项目的中文介绍文档。
- go.mod: Go 模块定义文件。
- go.sum: Go 模块依赖的校验文件。
- main.go: 项目的入口文件。
- makefile: 项目的 Makefile 文件,用于构建和运行项目。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/main.go
和根目录下的 main.go
。这两个文件是项目的入口点,负责初始化配置、加载参数并启动比较任务。
cmd/main.go
package main
import (
"rediscompare/commons"
"rediscompare/compare"
"rediscompare/globalzap"
"rediscompare/interact"
"rediscompare/redisconfigparameters"
)
func main() {
// 初始化日志
globalzap.InitLogger()
// 加载配置
config := redisconfigparameters.LoadConfig()
// 启动交互式命令行模式
interact.StartInteractiveMode(config)
// 启动比较任务
compare.StartComparison(config)
}
main.go
package main
import (
"rediscompare/cmd"
)
func main() {
cmd.Execute()
}
3. 项目的配置文件介绍
RedisCompare 项目的配置文件主要通过命令行参数和 YAML 文件进行配置。YAML 文件的示例位于 execyamlexample/example.yml
。
YAML 配置文件示例
compare:
saddr: "10.0.0.1:6379"
spassword: "redistest0102"
taddr: "10.0.0.2:6379"
tpassword: "testredis0102"
comparetimes: 3
配置文件参数介绍
- saddr: 源 Redis 实例的地址。
- spassword: 源 Redis 实例的密码。
- taddr: 目标 Redis 实例的地址。
- tpassword: 目标 Redis 实例的密码。
- comparetimes: 比较次数,用于循环比较不一致的 key。
通过这些配置文件和启动文件,用户可以灵活地配置和启动 RedisCompare 项目,进行 Redis 数据库的数据一致性校验。