According to what I am reading here:
http://redis.io/commands/cluster-setslot
To migrate a keyslot from one node to another requires the following steps:
on destination node: redis-cli -c -h hostname CLUSTER SETSLOT <slot> importing <source-node-id>
on source node: redis-cli -c -h hostname CLUSTER SETSLOT <slot> migrating <destination-node-id>
on source node: redis-cli -c -h hostname CLUSTER GETKEYSINSLOT <slot> <count>
on source node: redis-cli -c -h hostname MIGRATE <desitnation-ip> <destination-port> <key> <db> <timeout> This is done for each key
on either source or destination node: redis-cli -c -h hostname CLUSTER SETSLOT <slot> NODE <destination-node-id>
I have issue with the last step specifying that it should be run on either the source or destination node. If I run the command on the destination node, the source node slot is still open. If I run it only on the source node the destination slot remains open. I have to run the command on both the source and the destination nodes for the slot to be properly migrated and closed.
Is my understanding of the steps incorrect? Could this be a problem with the version of Redis I am using - 3.0.1? Or is the documentation incorrect and the last step needs to be run on both the source and the destination nodes?