Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 2.84 KB

README.md

File metadata and controls

57 lines (44 loc) · 2.84 KB

Usage: java -Dshosts=host1:port1,... -Ddhost=host2:port2 -Dtype=... -Dtime=<seconds> -Dmatch='...' -cp <jarname> clustercopier.ClusterCopier
Where:
shosts is the source cluster or a list of non-cluster redis instances.

  • If the first element of the list is a cluster element then the copy will treat the list as references to a single cluster.
  • If the first element of the list is a non-cluster instance then the list will be treated as a series of instances to copy from.
  • Only one (master) instance from a cluster is needed.

dhost is the destination cluster or redis instance. Only one instance may be specified.
type is the optional redis data type of the data to be copy. Records not of this type are skipped.
time is the optional length of time to run in seconds.

  • Usefull for development purposes. Default is as long as it takes.

match is the redis pattern to use in the scan to copy. Defaults to all keys


This is an Eclipse/Ivy project. Its purpose is to copy all the keys from a redis cluster, or one or more redis instances to a single destination cluster or instance.

By default all keys are copied including each key's associated TTL. The match parameter allows you to specify a pattern for keys to copy as opposed to all keys. In addition you can specify a type to narrow down the copy to a particular redis data type.

The copier runs for as long as it takes and prints out status every so often. At the end it prints totals. For test runs a time parameter can be specified to limit how long the copier runs.

The shosts parameter is specified as one or more comma separated host:port specifications. If the first element of the list is a cluster then it is assumed that all the redis instances in the list are members of the same cluster. If the first is a non-clustered instance then the list is interpreted as multiple sources from which keys are copied to the destination. The destination is only a single cluster or instance.

It is not possible to copy to multiple destinations.


Building

If this is the first time the project has been accessed then you must create the ivy library. To do so, right click on the project and 'ivy>add dependencies'.

To build in Eclipse click on the ClusterCopier java file and right click. Select Export/ as Runnable Jar. Fill in the appropriate output names and main class. I generally find that if you run the ClusterCopier once in Eclipse that it is easier to select the context to export from.

The usage instructions show a slightly different way to run the program. If you run the jar file exported from Eclipse, it is only necessary to use -jar jarname.jar rather than specifying the jar file name in the class path and the main class name.