Sha256: b85a99f8a895f428ba9e1254a341b4906da2b169b35d642ab9da6b5c940ebeec

Contents?: true

Size: 1.52 KB

Versions: 2

Compression:

Stored size: 1.52 KB

Contents

Redis-migrator
==============
Redis-migrator is a tool to redistribute keys in your redis cluster when its topography has
changed. 

##How it works

Say you are using Redis::Distributed to distribute your writes and reads across different
redis nodes. Redis::Distributed uses consitent hashing algorithm to determine where a command
will go. If you changed configuration of your cluster, for example, changed a hostname or added a new node then routes for some of the keys will change too. If you try to read such a key - you won't get a data from its old node.

Redis-migrator takes a list of nodes for your old cluster and list of nodes for your new cluster 
and determines for which keys routes were changed. Then it moves those keys to new nodes.

##Install  
`gem install redis_migrator`

##Usage  
    require 'redis_migrator'

    # a list of redis-urls for an old cluster
    old_redis_hosts = ["redis://host1.com:6379", "redis://host2.com:6379"]

    # a list of redis-urls for a new cluster
    new_redis_hosts = ["redis://host1.com:6379", "redis://host2.com:6379", "redis://host3.com:6379"]

    migrator = Redis::Migrator.new(old_redis_hosts, new_redis_hosts)
    migrator.run

##Requirements
* ruby 1.9 or jruby (with --1.9 flag)
* redis >=2.4.14 (only on machine where migrator will be running)

##Contributing

    # First fork the project.
    # Then bundle
    bundle

    # and make sure tests pass
    bundle exec rspec spec

    # Add features and profit.
    # Send a pull request back to the original repository.

##TODO
* Error handling 

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redis_migrator-0.1.2 README.md
redis_migrator-0.1.1 README.md