2014-04-11 15:29:01 -04:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
|
module.exports = function(redisClient, module) {
|
|
|
|
|
module.setAdd = function(key, value, callback) {
|
2014-09-03 19:38:48 -04:00
|
|
|
callback = callback || function() {};
|
|
|
|
|
redisClient.sadd(key, value, function(err) {
|
|
|
|
|
callback(err);
|
|
|
|
|
});
|
2014-04-11 15:29:01 -04:00
|
|
|
};
|
|
|
|
|
|
2014-09-10 21:44:19 -04:00
|
|
|
module.setsAdd = function(keys, value, callback) {
|
|
|
|
|
callback = callback || function() {};
|
|
|
|
|
var multi = redisClient.multi();
|
|
|
|
|
for (var i=0; i<keys.length; ++i) {
|
|
|
|
|
multi.sadd(keys[i], value);
|
|
|
|
|
}
|
|
|
|
|
multi.exec(function(err) {
|
|
|
|
|
callback(err);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2014-04-11 15:29:01 -04:00
|
|
|
module.setRemove = function(key, value, callback) {
|
|
|
|
|
redisClient.srem(key, value, callback);
|
|
|
|
|
};
|
|
|
|
|
|
2014-09-16 22:25:12 -04:00
|
|
|
module.setsRemove = function(keys, value, callback) {
|
|
|
|
|
callback = callback || function() {};
|
|
|
|
|
|
|
|
|
|
var multi = redisClient.multi();
|
|
|
|
|
for(var i=0; i<keys.length; ++i) {
|
|
|
|
|
multi.srem(keys[i], value);
|
|
|
|
|
}
|
|
|
|
|
multi.exec(function(err, res) {
|
|
|
|
|
callback(err);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2014-04-11 15:29:01 -04:00
|
|
|
module.isSetMember = function(key, value, callback) {
|
|
|
|
|
redisClient.sismember(key, value, function(err, result) {
|
|
|
|
|
if(err) {
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
callback(null, result === 1);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.isSetMembers = function(key, values, callback) {
|
|
|
|
|
var multi = redisClient.multi();
|
|
|
|
|
for (var i=0; i<values.length; ++i) {
|
|
|
|
|
multi.sismember(key, values[i]);
|
|
|
|
|
}
|
|
|
|
|
|
2014-06-29 14:10:20 -04:00
|
|
|
execSetMembers(multi, callback);
|
2014-04-11 15:29:01 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.isMemberOfSets = function(sets, value, callback) {
|
|
|
|
|
var multi = redisClient.multi();
|
2014-06-28 01:03:26 -04:00
|
|
|
for (var i = 0; i < sets.length; ++i) {
|
2014-04-11 15:29:01 -04:00
|
|
|
multi.sismember(sets[i], value);
|
|
|
|
|
}
|
|
|
|
|
|
2014-06-29 14:10:20 -04:00
|
|
|
execSetMembers(multi, callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function execSetMembers(multi, callback) {
|
2014-06-28 01:03:26 -04:00
|
|
|
multi.exec(function(err, results) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var i=0; i<results.length; ++i) {
|
|
|
|
|
results[i] = results[i] === 1;
|
|
|
|
|
}
|
|
|
|
|
callback(null, results);
|
|
|
|
|
});
|
2014-06-29 14:10:20 -04:00
|
|
|
}
|
2014-04-11 15:29:01 -04:00
|
|
|
|
|
|
|
|
module.getSetMembers = function(key, callback) {
|
|
|
|
|
redisClient.smembers(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
2014-08-06 21:30:06 -04:00
|
|
|
module.getSetsMembers = function(keys, callback) {
|
|
|
|
|
var multi = redisClient.multi();
|
|
|
|
|
for (var i=0; i<keys.length; ++i) {
|
|
|
|
|
multi.smembers(keys[i]);
|
|
|
|
|
}
|
|
|
|
|
multi.exec(callback);
|
|
|
|
|
};
|
|
|
|
|
|
2014-04-11 15:29:01 -04:00
|
|
|
module.setCount = function(key, callback) {
|
|
|
|
|
redisClient.scard(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.setRemoveRandom = function(key, callback) {
|
|
|
|
|
redisClient.spop(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return module;
|
|
|
|
|
};
|