mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 16:19:18 +00:00
✨ feat: 扩展Redis工具函数功能
- 添加`redisDeleteKey`函数,用于删除指定的Redis key - 添加`redisGetAllKeys`函数,用于获取所有Redis keys - 添加`redisExpireKey`函数,用于设置Redis key的过期时间 - 添加`redisTTLKey`函数,用于获取Redis key的剩余生存时间 - 优化注释和示例代码,提高代码的可读性和易用性
This commit is contained in:
parent
1c064271ea
commit
22274d805c
@ -2,6 +2,9 @@
|
||||
* 判断某个key是否存在
|
||||
* @param key
|
||||
* @returns {Promise<boolean>}
|
||||
* @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<Object>}
|
||||
* @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<Object|Array>}
|
||||
* @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<void>}
|
||||
* @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<void>}
|
||||
* @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<number>}
|
||||
* @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<Array<string>>}
|
||||
* @example
|
||||
* const keys = await redisGetAllKeys();
|
||||
* console.log(keys); // ['key1', 'key2', ...]
|
||||
*/
|
||||
export async function redisGetAllKeys() {
|
||||
return redis.keys('*');
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置某个key的过期时间
|
||||
* @param key
|
||||
* @param seconds
|
||||
* @returns {Promise<boolean>}
|
||||
* @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<number>}
|
||||
* @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);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user