2016-12-23 14:12:00 +03:00
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
module.exports = function (redisClient, module) {
|
2019-07-09 12:46:49 -04:00
|
|
|
var helpers = require('../helpers');
|
2016-12-23 14:12:00 +03:00
|
|
|
|
2019-07-09 12:46:49 -04:00
|
|
|
module.sortedSetRemove = async function (key, value) {
|
|
|
|
|
if (!key) {
|
|
|
|
|
return;
|
2016-12-23 14:12:00 +03:00
|
|
|
}
|
2019-07-09 12:46:49 -04:00
|
|
|
const isValueArray = Array.isArray(value);
|
|
|
|
|
if (!value || (isValueArray && !value.length)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!isValueArray) {
|
2016-12-23 14:12:00 +03:00
|
|
|
value = [value];
|
|
|
|
|
}
|
|
|
|
|
|
2018-03-17 18:49:33 -04:00
|
|
|
if (Array.isArray(key)) {
|
2019-07-09 12:46:49 -04:00
|
|
|
const batch = redisClient.batch();
|
|
|
|
|
key.forEach(k => batch.zrem(k, value));
|
|
|
|
|
await helpers.execBatch(batch);
|
2018-03-17 18:49:33 -04:00
|
|
|
} else {
|
2019-07-09 12:46:49 -04:00
|
|
|
await redisClient.async.zrem(key, value);
|
2018-03-17 18:49:33 -04:00
|
|
|
}
|
2016-12-23 14:12:00 +03:00
|
|
|
};
|
|
|
|
|
|
2019-07-09 12:46:49 -04:00
|
|
|
module.sortedSetsRemove = async function (keys, value) {
|
|
|
|
|
await module.sortedSetRemove(keys, value);
|
2016-12-23 14:12:00 +03:00
|
|
|
};
|
|
|
|
|
|
2019-07-09 12:46:49 -04:00
|
|
|
module.sortedSetsRemoveRangeByScore = async function (keys, min, max) {
|
2018-11-23 14:39:59 -05:00
|
|
|
var batch = redisClient.batch();
|
2019-07-09 12:46:49 -04:00
|
|
|
keys.forEach(k => batch.zremrangebyscore(k, min, max));
|
|
|
|
|
await helpers.execBatch(batch);
|
2016-12-23 14:12:00 +03:00
|
|
|
};
|
2019-07-12 14:06:09 -04:00
|
|
|
|
|
|
|
|
module.sortedSetRemoveBulk = async function (data) {
|
|
|
|
|
if (!Array.isArray(data) || !data.length) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const batch = redisClient.batch();
|
|
|
|
|
data.forEach(item => batch.zrem(item[0], item[1]));
|
|
|
|
|
await helpers.execBatch(batch);
|
|
|
|
|
};
|
2017-02-18 02:30:48 -07:00
|
|
|
};
|