diff --git a/utils/redis-util.js b/utils/redis-util.js index 023e34c..cd1ddf4 100644 --- a/utils/redis-util.js +++ b/utils/redis-util.js @@ -2,6 +2,9 @@ * 判断某个key是否存在 * @param key * @returns {Promise} + * @example + * const exists = await redisExistKey('myKey'); + * console.log(exists); // true or false */ export async function redisExistKey(key) { return redis.exists(key); @@ -11,6 +14,9 @@ export async function redisExistKey(key) { * 获取某个key的值 * @param key * @returns {Promise} + * @example + * const value = await redisGetKey('myKey'); + * console.log(value); // { ... } */ export async function redisGetKey(key) { return JSON.parse(await redis.get(key)); @@ -21,6 +27,8 @@ export async function redisGetKey(key) { * @param key * @param value * @returns {Promise<*>} + * @example + * await redisSetKey('myKey', { foo: 'bar' }); */ export async function redisSetKey(key, value = {}) { return redis.set( @@ -33,6 +41,9 @@ export async function redisSetKey(key, value = {}) { * 判断是否存在这个key然后再取值,如果没有就返回null * @param key * @returns {Promise} + * @example + * const value = await redisExistAndGetKey('myKey'); + * console.log(value); // { ... } or null */ export async function redisExistAndGetKey(key) { if (await redisExistKey(key)) { @@ -46,11 +57,13 @@ export async function redisExistAndGetKey(key) { * @param key * @param obj * @returns {Promise} + * @example + * await redisExistAndInsertObject('myKey', { newKey: 'newValue' }); */ export async function redisExistAndInsertObject(key, obj) { let objs = await redisExistAndGetKey(key); if (objs) { - objs = {...objs, ...obj}; + objs = { ...objs, ...obj }; await redisSetKey(key, objs); } else { await redisSetKey(key, obj); @@ -63,6 +76,8 @@ export async function redisExistAndInsertObject(key, obj) { * @param updateKey * @param updateObj * @returns {Promise} + * @example + * await redisExistAndUpdateObject('myKey', 'updateKey', { foo: 'bar' }); */ export async function redisExistAndUpdateObject(key, updateKey, updateObj) { let objs = await redisExistAndGetKey(key); @@ -70,4 +85,52 @@ export async function redisExistAndUpdateObject(key, updateKey, updateObj) { objs[updateKey] = updateObj; await redisSetKey(key, objs); } +} + +/** + * 删除某个key + * @param key + * @returns {Promise} + * @example + * const result = await redisDeleteKey('myKey'); + * console.log(result); // 1 if key was deleted, 0 if key did not exist + */ +export async function redisDeleteKey(key) { + return redis.del(key); +} + +/** + * 获取所有的key + * @returns {Promise>} + * @example + * const keys = await redisGetAllKeys(); + * console.log(keys); // ['key1', 'key2', ...] + */ +export async function redisGetAllKeys() { + return redis.keys('*'); +} + +/** + * 设置某个key的过期时间 + * @param key + * @param seconds + * @returns {Promise} + * @example + * const result = await redisExpireKey('myKey', 3600); + * console.log(result); // true if timeout was set, false if key does not exist + */ +export async function redisExpireKey(key, seconds) { + return redis.expire(key, seconds); +} + +/** + * 获取某个key的剩余生存时间 + * @param key + * @returns {Promise} + * @example + * const ttl = await redisTTLKey('myKey'); + * console.log(ttl); // time to live in seconds, -1 if key does not have timeout, -2 if key does not exist + */ +export async function redisTTLKey(key) { + return redis.ttl(key); } \ No newline at end of file