已大規模用于生産環境,親測有效!
下載下傳redis-migrate-tool軟體包(注意是tanruixing88的)
git clone https://github.com/tanruixing88/redis-migrate-tool.git
準備安裝
# mv redis-migrate-tool-master redis-migrate-tool
# cd redis-migrate-tool/
# ls
ChangeLog configure.ac dep LICENSE m4 Makefile.am nodes README.md rmt.conf src test
# autoreconf -fvi
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory config
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:36: installing 'config/config.guess'
configure.ac:36: installing 'config/config.sub'
configure.ac:16: installing 'config/install-sh'
configure.ac:16: installing 'config/missing'
src/Makefile.am:34: warning: whitespace following trailing backslash
src/Makefile.am: installing 'config/depcomp'
autoreconf: Leaving directory `.'
[[email protected] redis-migrate-tool]# ./configure
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
$ make
檢視幫助
$ src/redis-migrate-tool -h
運作 redis 叢集到叢集直接的實時遷移
redis-migrate-tool -c braavos.conf -n -o log -d
叢集到叢集直接的實時遷移配置檔案
$ vim rmt.conf
[source]
type: redis cluster
servers:
- 10.16.76.65:10044
[target]
type: redis cluster
servers:
- 10.16.76.141:6380
[common]
listen: 0.0.0.0:8888
注意:
1,實時遷移會在源庫和目标庫之間 互相同步資料 ,這就要求我們需要指定參數 使得源庫到目标庫的同步是單向的 ,需要加參數 -n, --noreply : don't receive the target redis reply
2,同步完以後,切換連接配接後,删除該同步程序,同步即結束
詳細用法見 https://github.com/tanruixing88/redis-migrate-tool