@eplata/memory-storage-data
Version:
Modulo que nos permitirá obtener data en memoria
65 lines (51 loc) • 1.67 kB
JavaScript
const getData = async (key, redis) => await redis.get(key);
const getExpire = async (key, redis) => await redis.ttl(key);
const getList = async (key, redis) => await redis.lrange(key, 0, -1);
const remove = async (key, redis) => await redis.del(key);
const setList = async (key, list, { ttl, right }, redis) => {
if (right)
await redis.rpush(key, list);
else
await redis.lpush(key, list);
await redis.expire(key, ttl);
return true;
};
const removeListElement = async (key, element, redis) => await redis.lrem(key, 0, element);
const exists = async (key, redis, { strict }) => {
const resp = await redis.exists(key);
if (strict) {
if (resp === 1)
return true
throw new Error('La key no fue encontrada.');
} else {
return (resp === 1) ? true : false;
}
};
const setData = async (key, jsonData, ttl, redis) => {
await redis.set(key, jsonData);
await redis.expire(key, ttl);
return true;
};
const updateData = async (key, jsonData, redis) => {
const ttl = await redis.ttl(key);
await redis.set(key, jsonData);
await redis.expire(key, ttl);
return true;
};
const renewExpire = async (key, ttl, redis) => await redis.expire(key, ttl);
const getKeys = async (pattern, redis) => await redis.keys(`${pattern}`);
const incrCounter = (key, redis) => redis.incr(key);
module.exports = {
exists: (key, redis, options = { strict: true }) => exists(key, redis, { strict: options.strict }),
setList,
setData,
getData,
getExpire,
getList,
remove,
updateData,
renewExpire,
getKeys,
removeListElement,
incrCounter,
};