redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis-dump需要ruby.2.2.0以上版本,因此,需要先升级。
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm -v //安装完成后,通过该方法测试是否安装正常
vim /usr/local/rvm/user/db
ruby_url=https://cache.ruby-china.org/pub/ruby
ruby -v //查看ruby版本
rvm list known //列出已知ruby版本
rvm install 2.4 //安装ruby2.4版本,会自动去匹配
gem update --system //需要科学上网
gem -v //查看版本号
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ //更换源镜像
gem sources -l //查看源镜像内容
gem install redis-dump -V //安装redis-dump
redis-dump -v //查看版本号及是否安装正常
redis-dump -u 源地址:6379 -a password > /data/deploy/redis/data/redis_6378.json //导出
< redis_6378.json redis-load -u 目标地址:6379 -a password -n //导入
./redis-cli -h 源IP地址 -a 源密码 config set Appendonly yes //开启aof功能
开启后,数据在redis/data/6379/ 文件夹里面
./redis-cli -h 源IP地址 -a 源密码 config set appendonly no //关闭aof功能
./redis-cli -h 目标IP地址 -a 目标密码 --pipe < data/6379/appendonly.aof
#!/bin/bash
src_ip=源地址
src_port=6379
src_db=0
src_pw='密码'
dest_ip=目标地址
dest_port=6379
dest_db=0
desc_pw='密码'
./redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "*" | while read key
do
./redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | ./redis-cli -h $dest_ip -p $dest_port -a $desc_pw
-n $dest_db -x restore $key 0
echo "migrate key $key"
done
#!/bin/bash
src_ip=127.0.0.1
src_port=8090
src_db=14
src_pw='1234'
dest_ip=127.0.0.1
dest_port=6379
dest_db=2
desc_pw='1234'
#要遍历的key
k=(test ws we)
for loop in ${k[*]}
do
redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $loop 0
echo "The value is: $loop"
done
redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 14 --raw dump test | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 15 -x restore test 0