0
点赞
收藏
分享

微信扫一扫

Redis-dump导出过慢?写个Nodejs脚本导出Redis数据

Brose 2022-02-24 阅读 77

00 前言

RedisDump 是一个用于 Redis 数据导入 / 导出的工具,是基于 Ruby 实现,因此先安装 Ruby。而在Windows配置环境比较繁琐,在服务器云端配置较为方便,但是导出数据时非常的慢。因此,我们可以通过一个简单的脚本来实现Redis数据的导出。

01 导入库

首先需要将相应的库导入,其中的outputFs.js为导出文件的自定义库。

var redis = require('redis');
const { outputJson } = require("./outputFs");

02 定义变量

定义导出的数据变量

var json = [];

03 构造Promise函数

为了保证每个循环结束后再将数据赋值,所以我们需要构造Promise函数保证for循环全部执行完毕。因为本代码使用时不需要保存键,所以以下代码仅供参考,如果需要保存键和值,可以自行修改或者本文附属资源下载全部版本代码。

let por = new Promise((r, j) => {
  var client = redis.createClient(xxxx, 'xxx.com');
  client.auth("xxx");  // 如果没有设置密码 是不需要这一步的
  client.keys("*", function (err, keys) {
    if (err) return console.log(err);
    var actions = [];
    for (var i = 0, len = keys.length; i < len; i++) {
      let action = ()=>{
        return new Promise(resolve=>{
          ((key,ii)=>{
            client.get(key,function(err,val){
              val = JSON.parse(val);
              json.push(val);
              console.log(ii);
              resolve();
            })
          })(keys[i],i)
        })
      }
      actions.push(action())
    }
    Promise.all(actions).then(()=>{
      r(json);
    })
  });
})

04 将数据传入输出函数

promise执行完成后,将数据传入文件写出函数,即可输出json格式数据。

.then((rr) => {
    outputJson("all",json);
  }
)

完整版本资源链接https://download.csdn.net/download/weixin_45860525/82223902

举报

相关推荐

0 条评论