使用第三方工具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&&