2017-02-18 01:56:23 -07:00
|
|
|
'use strict';
|
2014-04-11 15:29:01 -04:00
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.exports = function (redisClient, module) {
|
2015-01-22 16:21:32 -05:00
|
|
|
var helpers = module.helpers.redis;
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setAdd = function (key, value, callback) {
|
|
|
|
|
callback = callback || function () {};
|
2016-09-28 12:17:56 +03:00
|
|
|
if (!Array.isArray(value)) {
|
|
|
|
|
value = [value];
|
|
|
|
|
}
|
|
|
|
|
if (!value.length) {
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
2016-10-13 11:43:39 +02:00
|
|
|
redisClient.sadd(key, value, function (err, res) {
|
2014-09-03 19:38:48 -04:00
|
|
|
callback(err);
|
|
|
|
|
});
|
2014-04-11 15:29:01 -04:00
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setsAdd = function (keys, value, callback) {
|
|
|
|
|
callback = callback || function () {};
|
|
|
|
|
helpers.multiKeysValue(redisClient, 'sadd', keys, value, function (err, res) {
|
2014-09-10 21:44:19 -04:00
|
|
|
callback(err);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setRemove = function (key, value, callback) {
|
|
|
|
|
callback = callback || function () {};
|
|
|
|
|
redisClient.srem(key, value, function (err, res) {
|
2014-11-17 23:32:39 -05:00
|
|
|
callback(err);
|
|
|
|
|
});
|
2014-04-11 15:29:01 -04:00
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setsRemove = function (keys, value, callback) {
|
|
|
|
|
callback = callback || function () {};
|
|
|
|
|
helpers.multiKeysValue(redisClient, 'srem', keys, value, function (err, res) {
|
2014-09-16 22:25:12 -04:00
|
|
|
callback(err);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.isSetMember = function (key, value, callback) {
|
|
|
|
|
redisClient.sismember(key, value, function (err, result) {
|
2015-01-22 16:21:32 -05:00
|
|
|
callback(err, result === 1);
|
2014-04-11 15:29:01 -04:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.isSetMembers = function (key, values, callback) {
|
|
|
|
|
helpers.multiKeyValues(redisClient, 'sismember', key, values, function (err, results) {
|
2015-01-22 16:21:32 -05:00
|
|
|
callback(err, results ? helpers.resultsToBool(results) : null);
|
|
|
|
|
});
|
2014-04-11 15:29:01 -04:00
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.isMemberOfSets = function (sets, value, callback) {
|
|
|
|
|
helpers.multiKeysValue(redisClient, 'sismember', sets, value, function (err, results) {
|
2015-01-22 16:21:32 -05:00
|
|
|
callback(err, results ? helpers.resultsToBool(results) : null);
|
2014-06-28 01:03:26 -04:00
|
|
|
});
|
2015-01-22 16:21:32 -05:00
|
|
|
};
|
2014-04-11 15:29:01 -04:00
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.getSetMembers = function (key, callback) {
|
2014-04-11 15:29:01 -04:00
|
|
|
redisClient.smembers(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.getSetsMembers = function (keys, callback) {
|
2015-01-22 16:21:32 -05:00
|
|
|
helpers.multiKeys(redisClient, 'smembers', keys, callback);
|
2014-08-06 21:30:06 -04:00
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setCount = function (key, callback) {
|
2014-04-11 15:29:01 -04:00
|
|
|
redisClient.scard(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setsCount = function (keys, callback) {
|
2015-01-22 16:21:32 -05:00
|
|
|
helpers.multiKeys(redisClient, 'scard', keys, callback);
|
2014-12-21 16:29:32 -05:00
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
module.setRemoveRandom = function (key, callback) {
|
|
|
|
|
callback = callback || function () {};
|
2014-04-11 15:29:01 -04:00
|
|
|
redisClient.spop(key, callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return module;
|
2017-02-18 02:30:48 -07:00
|
|
|
};
|