如何在node.js中管道到redis?

Avi*_*Net 12 pipeline redis node.js node-redis

我有很多数据要插入(SET\INCR)到redis DB,所以我正在寻找通过node.js的管道\大量插入.

我在node.js中找不到任何好的示例/ API,所以任何帮助都会很棒!

Ton*_*oni 10

是的,我必须同意这方面缺乏示例,但我设法创建了我批量发送了几个插入命令的流.

您应该为redis流安装模块:

npm install redis-stream
Run Code Online (Sandbox Code Playgroud)

这就是你使用流的方式:

var redis = require('redis-stream'),
    client = new redis(6379, '127.0.0.1');

// Open stream
var stream = client.stream();

// Example of setting 10000 records
for(var record = 0; record < 10000; record++) {

    // Command is an array of arguments:
    var command = ['set', 'key' + record, 'value'];  

    // Send command to stream, but parse it before
    stream.redis.write( redis.parse(command) );
}

// Create event when stream is closed
stream.on('close', function () {
    console.log('Completed!');

    // Here you can create stream for reading results or similar
});

// Close the stream after batch insert
stream.end();
Run Code Online (Sandbox Code Playgroud)

此外,您可以根据需要创建任意数量的,并随时打开/关闭它们.

几个redis-stream节点模块上的node.js 中使用redis流的示例


小智 5

在node_redis中,所有命令都是流水线的:

https://github.com/mranney/node_redis/issues/539#issuecomment-32203325