按旧例,先说些别的。最近帮助公司做了一个投票活动,刚开始没在意写了写逻辑,不过局势瞬息万变,一下子说有几百万的并发(活动的参与者有三个一线歌星,明星)。听到这个顿时哭晕,熬了几天夜,布了tomcat,mysql,redis,nginx,分离登陆与支付代码。。。总之就是各种负载均衡。这对于我这个考生来说是超纲了。没办法,熬了一个礼拜。终于熬到活动结束,还好系统比较稳定,活动顺利举办,通过我们的投票系统,也筹集了几十万的善款。心理一直想说一句。能不能不要这样玩啊。
回到主题。活动中需要将redis从一个内存8G的服务器迁移到一个内存64G的服务器上。迁移的工具就是redis-dump 和redis-load。下面是安装过程
一:安装redis-dump
1、yum install ruby rubygems ruby-devel //安装rubygems 以及相关包
2、 gem sources -a https://ruby.taobao.org/ //加入淘宝镜像源
3、 gem install redis-dump -V
二:redis-dump 导出数据
redis-dump –u 127.0.0.1:6379 > test.json (导出redis 默认数据库的数据,默认数据库为0)
如果指定15数据库的数据:
redis-dump –u 127.0.0.1:6379 –d 15 >test.json
三:redis-load 还原数据
将test.json 文件上传到新的redis服务器上,进入到test.json目录,执行命令
< test.json redis-load;
或者
cat test.json | redis-load
如果导出时指定了数据库
cat test.json | redis-load –d 15
github 地址
https://github.com/delano/redis-dump/blob/master/bin/redis-dump