赞
踩
最近在工作中遇到一个需要对redis进行数据迁移的场景,经过学习和验证,找到两种有效的迁移方法,在此做一下记录。
所谓的物理迁移,指的是在redis开启了持久化存储过后,我们可以通过复制dump.rdb文件的方式都redis进行数据迁移。具体实施方法如下:
● 在redis源端,找到正确的数据持久化存储文件dump.rdb
● 将dump.rdb复制到目标端的redis指定的持久化存储所在的路径
● 启动redis
如果redis是一主二从的,则先关闭从redis,然后关闭主redis,再把rdb文件传过去,然后重启主redis,最后重启从redis使数据同步。
所谓的逻辑迁移,指的是通过第三方工具,例如本次使用的redis-dump和redis-load工具进行逻辑导入导出的方式进行数据迁移。
redis-dump的安装较为复杂,centos系统可以参考以下安装方式进行安装:
安装redis-dump之前首先需要安装ruby:
yum install ruby rubygems ruby-devel -y
ruby安装完成后,尝试安装redis-dump:
gem install redis-dump
如果提示ruby版本过低,那么则需要更新ruby版本,可以通过以下方式进行更新:
● 安装rvm
curl -L get.rvm.io | bash -s stable
安装完成会提示ruby的安装方法,显示如下:
- [root@izuf63g0jydq42k49eo7zcz ~]# curl -L get.rvm.io | bash -s stable
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 194 100 194 0 0 197 0 --:--:-- --:--:-- --:--:-- 197
- 100 24173 100 24173 0 0 9655 0 0:00:02 0:00:02 --:--:-- 24014
- Downloading https://github.com/rvm/rvm/archive/1.29.7.tar.gz
- Downloading https://github.com/rvm/rvm/releases/download/1.29.7/1.29.7.tar.gz.asc
- gpg: directory `/root/.gnupg' created
- gpg: new configuration file `/root/.gnupg/gpg.conf' created
- gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
- gpg: keyring `/root/.gnupg/pubring.gpg' created
- gpg: Signature made Fri 04 Jan 2019 06:01:48 AM CST using RSA key ID 39499BDB
- gpg: Can't check signature: No public key
- GPG signature verification failed for '/usr/local/rvm/archives/rvm-1.29.7.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.7/1.29.7.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:
- gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
- or if it fails:
- command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
- command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
- In case of further problems with validation please refer to https://rvm.io/rvm/security
通过提示的第一个命令进行安装:
- $ gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
-
- $ curl -sSL https://get.rvm.io | bash -s stable
-
- $ source ~/.bashrc
-
- $ source ~/.bash_profile
-
- $ source /usr/local/rvm/scripts/rvm
-
- $ rvm list known #列出版本
-
- $ rvm install 3.0.0 #选择一个高版本的安装
-
- $ rvm use 3.0.0 #使用安装的版本
-
- $ ruby --version #查看版本
● 安装redis-dump:
gem install redis-dump
导出和导入命令使用较为灵活,也比较简单,具体可以通过--help命令查看详细说明,以下举一个简单的到处和导入例子。
- # 导出全部数据
- redis-dump -u redis://192.168.10.101:6380 -a Nq2_6cJqhbU8 >> redis.json
-
- # 可以通过-d 指定数据库号的方式导出需要的数据库
- redis-dump -u redis://192.168.10.101:6380 -a Nq2_6cJqhbU8 -d 0>> redis_0.json
cat redis.json | redis-load -u redis://192.168.10.101:6379 -a Nq2_6cJqhbU8
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。