Redis-full-check 用于比较两个 Redis 是否具有相同的数据。支持 2.x 到 7.x 版本的 Redis (不支持 Redis 模块)。
Redis-full-check 用于比较两个 Redis 是否具有相同的数据。支持 2.x 到 7.x 版本的 Redis (不支持 Redis 模块)。
Redis-full-check is used to compare whether two redis have the same data. We also offer a data synchronization tool called redis-shake to syncing data from one redis to another redis.
Thanks to the Douyu's WSD team for the support.
Redis-full-check is developed and maintained by NoSQL Team in Alibaba-Cloud Database department.
Redis-full-check performs full data verification by comparing the data of the source database and the destination database. The entire check process consists of multiple comparisons, in every comparison, redis-full-check fetches data from two dabatases and then compared, the inconsistent data is put into sqlite3 db for the next comparison. By this iteratively comparing method, the difference continues to converge. The following figure shows the dataflow. In every comparison which is the yellow box, redis-full-check fetches all keys firstly. After that, it runs comparison and stores the difference result(key and field) into the sqlite3 db which is the position that keys and fields can be fetched in next round instead of the source database.
Redis-full-check fetches keys from source and then checks these keys exist on the target. So if one key exists on the target but lack on the source, redis-full-check can't find it. If you want to know whether the data in the source and destination databases are exactly the same, you need to set up a bidirectional link:
standalone, cluster, proxy(aliyun-cluster, tencent-cluster). Redis version from 2.x to 7.x (Don't support Redis Modules).
Version rules: a.b.c.
| branch name | rules |
|---|---|
| master | master branch, do not allowed push code. store the latest stable version. develop branch will merge into this branch once new version created. |
| develop(main branch) | develop branch. all the bellowing branches fork from this. |
| feature-* | new feature branch. forked from develop branch and then merge back after finish developing, testing, and code review. |
| bugfix-* | bugfix branch. forked from develop branch and then merge back after finish developing, testing, and code review. |
| improve-* | improvement branch. forked from develop branch and then merge back after finish developing, testing, and code review. |
Tag rules:
Add tag when releasing: "release-v{version}-{date}". for example: "release-v1.0.2-20180628"
…
Run ./bin/redis-full-check.darwin64 or redis-full-check.linux64 which is built in OSX and Linux respectively, however, the binaries aren't always the newest version.
Or you can build redis-full-check yourself according to the following steps:
Here comes the sqlite3 example to display the conflict result:
…
We also provide some tools for synchronization in Shake series.
暂无开放 Issues,或尚未同步最近议题。