我有两个排序集,我想将记录与第一个集分开,并通过排除第二个排序集中的记录来存储在新列表/排序集中。
下面是一个例子:
第一组:1,2,3,4,5 第二组:3,5,7,8,9
输出:1,2,4
编辑:我已经找到了加载脚本并使用 eval 从 nodejs 执行脚本的方法。
奇怪的是,当我执行你的脚本时,即使是 5-10 条记录也需要 1 秒的时间来处理,这让我怀疑如果我有数千条记录它的可扩展性有多大。
下面是我的示例 nodejs 代码:
hsetxx = 'redis.call("ZINTERSTORE","temp",2,"set11","set21","weights",1,0) redis.call("ZUNIONSTORE","result",2,"set11","temp","weights",1,-1) redis.call("ZREMRANGEBYSCORE","result",0,0)';
var redis = require('redis');
var client = redis.createClient('14470', connection);
client.on('connect', function() {
console.log('Connected to Redis');
});
client.script('load',hsetxx,function(err, result) {
console.log(err+'------------'+result);
});
client.zadd('set11', 1,1,1,2,1,3,1,4,1,5);
client.zadd('set21', 1,1,1,5);
client.evalsha(
'39c0da298cab6a6223b4d1e8222cf6d6a84e67b1', //lua source
0,
function(err, result) {
client.zrange('result', 0, -1, function(err, result) {
console.log(err+'------------'+result);
});
}
);