Created
March 1, 2016 06:07
-
-
Save ZwodahS/2263e351b8c29181c642 to your computer and use it in GitHub Desktop.
copy a redis db key to another place (use MIGRATE COPY for v3.0<= redis)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# source http://stackoverflow.com/questions/23222616/copy-all-keys-from-one-db-to-another-in-redis | |
#set connection data accordingly | |
source_host=localhost | |
source_port=6379 | |
source_db=1 | |
target_host=localhost | |
target_port=6379 | |
target_db=2 | |
#copy all keys without preserving ttl! | |
redis-cli -h $source_host -p $source_port -n $source_db keys \* | while read key; | |
do | |
echo "Copying $key" | |
redis-cli --raw -h $source_host -p $source_port -n $source_db DUMP "$key" | head -c -1 | redis-cli -x -h $target_host -p $target_port -n $target_db RESTORE "$key" 0 | |
done |
`#!/bin/bash
source_host=10.128.0.157
source_port=6393
target_host=prod-experienceservice-elasticache.l15s7f.ng.0001.usw2.cache.amazonaws.com
target_port=6379
function copy_key {
key="$1"
echo "Copying $key"
redis-cli --raw -h $source_host -p $source_port DUMP "$key" | head -c-1 | redis-cli -x -h $target_host -p $target_port RESTORE "$key" 0
if [ $? -ne 0 ]; then
echo "Error copying key $key"
# Handle error as needed
fi
}
export -f copy_key
export source_host
export source_port
export target_host
export target_port
redis-cli -h $source_host -p
This works much better and distributes the load to 16 threads
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sorry i'm not using ttl keys for now