我有很多数据要插入(SET \ INCR)到Redis DB,所以我正在通过node.js寻找pipeline \ mass insertion。
我在node.js中找不到任何好的示例/ API,因此任何帮助都将非常有用!
是的,我必须同意缺少示例,但是我设法创建了一个流,在该流上我批量发送了几个插入命令。
您应该为redis流安装模块:
npm install redis-stream
这就是您使用流的方式:
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();
此外,您可以根据需要创建为许多流,并可以随时根据需要打开/关闭它们。
有[[几个示例在redis-stream node module的node.js中使用redis流)>
batch()
。用multi()
变慢的原因是因为它是事务性的。如果发生故障,将不会执行任何操作。那可能就是您想要的,但是您确实可以选择速度。