From 22274d805c02faa1ab2747188a2a64681106a133 Mon Sep 17 00:00:00 2001 From: zhiyu1998 <542716863@qq.com> Date: Wed, 11 Sep 2024 13:42:15 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=89=A9=E5=B1=95Redis?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=87=BD=E6=95=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加`redisDeleteKey`函数,用于删除指定的Redis key - 添加`redisGetAllKeys`函数,用于获取所有Redis keys - 添加`redisExpireKey`函数,用于设置Redis key的过期时间 - 添加`redisTTLKey`函数,用于获取Redis key的剩余生存时间 - 优化注释和示例代码,提高代码的可读性和易用性 --- utils/redis-util.js | 65 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) 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