nodejs 的ioredis pipeline 的用法与java 有区别
var redis = new Redis(6379, '192.168.0.147');
let testrds = redis.duplicate()//复制redis实例
testrds.select(0)//选择0库
function test2() {
let pp = testrds.pipeline()//采用管道操作
//复制一个实例
pp.sadd("a1", "a2")
pp.sadd("a1", ["a3", "a4"])
pp.smembers("a1")
pp.exec(function (err, result) {
console.log("e1", err);
console.log("r1", result);
})
//后续exec语句不会执行,
// pp.exec(function (err, result) {
// console.log("e2", err);
// console.log("r2", result);
// })
}
//第一次调用
test2();
//第二次调用
test2();
输出结果:
e1 null
r1 [ [ null, 0 ], [ null, 0 ], [ null, [ 'a3', 'a4', 'a2' ] ] ]
e1 null
r1 [ [ null, 0 ], [ null, 0 ], [ null, [ 'a3', 'a4', 'a2' ] ] ]
注意 pp=testrds.pipeline() 与 pp.exec() 分别是 开闭指令
在开闭指令中的可以连续执行 多条指令
一个pp 只能调用一次 exec()