У меня есть два отсортированных набора, я хочу отделить записи от 1-го набора и сохранить в новом списке/отсортированном наборе, исключив записи из 2-го отсортированного набора.
Ниже приведен пример:
набор1: 1,2,3,4,5 набор2: 3,5,7,8,9
выход: 1,2,4
EDIT: я нашел способ загрузить скрипт и использовать 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);
});
}
);