2 つの並べ替えられたセットがあります。1 番目のセットからレコードを分離し、2 番目の並べ替えられたセットからレコードを除外して、新しいリスト/並べ替えられたセットに格納したいと考えています。
以下に例を示します。
セット1: 1,2,3,4,5 セット2: 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);
});
}
);