唯品会redis-migrate-tool redis移行ツール翻訳

3725 ワード

vipshop/redis-migrate-tool,           ,    redis       。

/*
	    :
		Mac      ,redis_check、redis_testinsert      。redis    auth     ,    (           ...)

		       redis   
		          redis     
		...     ...

	         :
		brew switch redis 3.2.3/4.0.11 		// brew    redis     
 */

  :
	automake
	libtool
	autoconf
	bzip2

  :
	git clone [email protected]:vipshop/redis-migrate-tool.git
	cd redis-migrate-tool
	autoreconf -fvi
	./configure
	make

        ,    :
	src/redis-migrate-tool -h

  :
	src/redis-migrate-tool -c rmt.conf -o log -d

  :
	      ,   'source' redis    ,      ,       redis    rdb   。
	   'source' redis    ,       ,     redis      rdb   ,     rmt.conf   'source_safe: false'

      redis   :
	       ,    'target' redis    ,         ,        'target' redis      :

	RENAME,RENAMENX,RPOPLPUSH,BRPOPLPUSH,FLUSHALL,FLUSHDB,BITOP,MOVE,GEORADIUS,GEORADIUSBYMEMBER,EVAL,EVALSHA,SCRIPT,PFMERGE

  :
	     3    :
		source
		target
		common

	source   target      
		type - redis   ,     : 
			single
			twemproxy
			redis cluster
			rdb file
			aof file

		servers -     redis      。   type   'twemproxy',   twemproxy       。   type   rdb   ,     rdb    。

		redis_auth -    redis           

		timeout - redis      /       (      ),    120000。(  :     'source'       )

		hash - hash     。(  :     type   'twemproxy'),    :
			one_at_a_time
			md5
			crc16
			crc32(crc32     libmemcached   )
			crc32a(      crc32  )
			fnv1_64
			fnv1a_64
			fnv1_32
			fnv1a_32
			hsieh
			murmur
			jenkins

		hash_tag -     ,     hash      。  :{}   $$。         , hash_tag                 。(  :     type   'twemproxy')

		distribution -       。(  :     type   'twemproxy')
			ketama
			modula
			random

	common      
		listen -        (name:port   ip:port)。   :127.0.0.1:8888(redis-migrate-tool,   redis-cli)

		max_clients -                。   :100

		threads - redis-migrate-tool          。   :CPU   

		step -        。    ,    ,          。   :1

		mbuf_size -     Mbuf   。   :512

		noreply -     ,     'target' redis    。   :false

		source_safe -     ,     'source' redis          。    true,     、           ,     redis     rdb   。  ,'source_safe: true'              ,     。   :true

		dir -     ,      (  :rdb   )。   :    

		filter -        'key'。   'Glob'   。   :NULL
			?
			*
			[ae]
			[^e]
			[a-b]
			\ -       

  :
	     redis-cli     redis-migrate-tool。       ,    'common'       

	   'redis-migrate-tool':(  :     redis-cli      ,      ,     !!)
		redis-cli -h 127.0.0.1 -p 8888

	info -    Server、Clients、Memory、Group、Stats   

	shutdown [seconds|asap]
		  :
			    'source' redis    
			    redis-migrate-tool      ,    'target' redis
			redis-migrate-tool      

		  :
			seconds - redis-migrate-tool     ,     'target' redis            。   :10s
			asap -       ,    

	
    :
	     ,     'redis_check'   ,    'source'     'target'         。      1000  key
		src/redis-migrate-tool -c rmt.conf -o log -C redis_check

	         key,  
		src/redis-migrate-tool -c rmt.conf -o log -C "redis_check 200000"

     key,    :
	   'redis_testinsert'   。      1000  key
		src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert"

	         key,  
		src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert 30000"

	      'string'     key,  :
		src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert tring"

	             key,  :
		src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert string|set|list 10000"