Vinllen Chen
735afbb99c
|
6 years ago | |
---|---|---|
bin | 6 years ago | |
conf | 6 years ago | |
src | 6 years ago | |
.gitignore | 6 years ago | |
ChangeLog | 6 years ago | |
MIT-LICENSE.txt | 6 years ago | |
Makefile | 6 years ago | |
README.md | 6 years ago | |
build.sh | 6 years ago | |
wandoujia_license.txt | 6 years ago |
README.md
RedisShake is mainly used to synchronize data from one redis database to another.
Thanks to the Douyu's WSD team for the support.
Redis-Shake
Redis-shake is developed and maintained by NoSQL Team in Alibaba-Cloud Database department.
Redis-shake has made some improvements based on redis-port, including bug fixes, performance improvements and feature enhancements.
Main Functions
The type can be one of the followings:
- decode: Decode dumped payload to human readable format (hex-encoding).
- restore: Restore RDB file to target redis.
- dump: Dump RDB file from souce redis.
- sync: Sync data from source redis to target redis.
Please check out the conf/redis-shake.conf
to see the detailed parameters description.
Verification
User can use RedisFullCheck to verify correctness.
Metric
Redis-shake offers metrics through restful api and log file.
- restful api:
curl 127.0.0.1:9320/metric
. - log: the metric info will be printed in the log periodically if enable.
Code branch rules
Version rules: a.b.c.
- a: major version
- b: minor version. even number means stable version.
- c: bugfix version
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"
Usage
Run ./bin/redis-shake.darwin64
or redis-shake.linux64
which is built in OSX and Linux respectively.
Or you can build redis-shake yourself according to the following steps:
- git clone https://github.com/aliyun/redis-shake.git
- cd redis-shake/src/vendor
- GOPATH=`pwd`/../..; govendor sync #please note: must install govendor first and then pull all dependencies:
go get -u github.com/kardianos/govendor
- cd ../../ && ./build.sh
- ./bin/collector -type=$(type_must_be_sync_dump_restore_or_decode) -conf=conf/redis-shake.conf #please note: user must modify collector.conf first to match needs.
Shake series tool
We also provide some tools for synchronization in Shake series.
- MongoShake: mongodb data synchronization tool.
- RedisShake: redis data synchronization tool.
- RedisFullCheck: redis data synchronization verification tool.
Plus, we have a WeChat group so that users can join and discuss, but the group user number is limited. So please add my WeChat number: vinllen_xingge
first, and I will add you to this group.