redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API 。
文章插图
一、redis-dump迁移redis-dump需要ruby.2.2.0以上版本,因此,需要先升级 。
1、更新编译环境的包
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
2、安装RVM,通过RVM安装升级 curl -L get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh rvm -v //安装完成后,通过该方法测试是否安装正常
3、更新RVM安装镜像 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版本,会自动去匹配
4、更新gem版本 gem update --system //需要科学上网 gem -v //查看版本号 gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ //更换源镜像 gem sources -l //查看源镜像内容
5、安装redis-dump 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迁移源服务器: ./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
三、脚本迁移1、Redis全量合并 #!/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
2、差异合并 #!/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
3、导入某个key 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
【Redis 数据迁移方法】
推荐阅读
- redis的多路复用是什么鬼
- Redis中List经常瞎用,一起来看看正确姿势
- Docker容器迁移案例
- 安装数据可视化展现软件-grafana
- 数据库的几种常用部署架构
- Java中数据传输加密与签名那些事
- JavaScript 数据类型与类型判断详解
- 大数据分析经典案例 大数据杀熟什么意思
- 聊一聊Redis之数据结构
- 你经常忽略的Redis常见面试题,精选给你整理