Redis中数据导出和导入:redis-dump和redis-load

使用第三方工具redis-dump和redis-load迁移redis数据库指定库号数据到新redis恢复:

1、配置yum仓库

yum install centos-release-scl-rh -y

2、安装其他工具,不安装后面可能会报错

yum install rh-ruby24*  -y

3、让ruby、redis-dump和redis-load起作用,下次连接上来在运行redis-dump之前也需要执行该语句才行

scl  enable  rh-ruby24 bash

检测下 ruby 版本看是否生效

ruby -v

4、安装redis-dump

gem install redis-dump -V

5、redis-dump导出数据

redis-dump -u 127.0.0.1:6379 -a 'yourpassword' -d 1 > redis_1.json

6、redis-load 导入数据

如果你导出的是1号库的数据,然后你要把它导入到新redis的19号库,将导出文件中的所有”db”:1, 换成”db”:19,然后保存,上传后导入即可,在新redis无密码的情况下可以顺利导入。
修改前redis_1.json

{"db":1,"key":"course:online:capture:sendmsg:user:697","ttl":-1,"type":"list","value":["{\"@class\":\"com.shida.zhaosheng.projects.pojo.formVo.CaptureFormVo\",\"openId\":\"oV3Nd52RDdNqH17zSeyoDAlUemFw\",\"timestamp\":1630800931890,\"imgUrl\":null,\"materialId\":null}"],"size":165}

修改后redis_19.json

{"db":19,"key":"course:online:capture:sendmsg:user:697","ttl":-1,"type":"list","value":["{\"@class\":\"com.shida.zhaosheng.projects.pojo.formVo.CaptureFormVo\",\"openId\":\"oV3Nd52RDdNqH17zSeyoDAlUemFw\",\"timestamp\":1630800931890,\"imgUrl\":null,\"materialId\":null}"],"size":165}

恢复语句,在redis无密码的情况下可以顺利导入。

cat redis_19.json | redis-load -u 127.0.0.1:6379 -d 19

备注:
< test.json redis-load -u 192.168.0.31
ERROR (Yajl::ParseError): lexical error: invalid bytes in UTF8 string.
lue”:{“maxInactiveInterval”:”0000\u0005sr\u0000\u0011jav
(right here) ——^
如报错可加参数 -n,不检查 utf-8格式< test.json redis-load -n -u 192.168.0.31&&

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |