From bcbc7c1d47546e48481d8ef65fe3385f5704ecb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 20:22:45 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20RedisUtils=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=B3=A8=E5=86=8C=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E5=99=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/RedisUtils.java | 73 ++++++++++++++++--- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java index 7104b4d24..0ccbe0fa5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java @@ -94,8 +94,8 @@ public class RedisUtils { /** * 缓存基本的对象,保留当前对象 TTL 有效期 * - * @param key 缓存的键值 - * @param value 缓存的值 + * @param key 缓存的键值 + * @param value 缓存的值 * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90) * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案 */ @@ -128,6 +128,19 @@ public class RedisUtils { result.expire(timeout, timeUnit); } + /** + * 注册对象监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addObjectListener(final String key, final ObjectListener listener) { + RBucket result = CLIENT.getBucket(key); + result.addListener(listener); + } + /** * 设置有效时间 * @@ -177,19 +190,16 @@ public class RedisUtils { /** * 删除单个对象 * - * @param key + * @param key 缓存的键值 */ public static boolean deleteObject(final String key) { return CLIENT.getBucket(key).delete(); } - /* */ - /** * 删除集合对象 * * @param collection 多个对象 - * @return */ public static void deleteObject(final Collection collection) { RBatch batch = CLIENT.createBatch(); @@ -211,6 +221,19 @@ public class RedisUtils { return rList.addAll(dataList); } + /** + * 注册List监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addListListener(final String key, final ObjectListener listener) { + RList rList = CLIENT.getList(key); + rList.addListener(listener); + } + /** * 获得缓存的list对象 * @@ -234,11 +257,24 @@ public class RedisUtils { return rSet.addAll(dataSet); } + /** + * 注册Set监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addSetListener(final String key, final ObjectListener listener) { + RSet rSet = CLIENT.getSet(key); + rSet.addListener(listener); + } + /** * 获得缓存的set * - * @param key - * @return + * @param key 缓存的key + * @return set对象 */ public static Set getCacheSet(final String key) { RSet rSet = CLIENT.getSet(key); @@ -248,8 +284,8 @@ public class RedisUtils { /** * 缓存Map * - * @param key - * @param dataMap + * @param key 缓存的键值 + * @param dataMap 缓存的数据 */ public static void setCacheMap(final String key, final Map dataMap) { if (dataMap != null) { @@ -258,11 +294,24 @@ public class RedisUtils { } } + /** + * 注册Map监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addMapListener(final String key, final ObjectListener listener) { + RMap rMap = CLIENT.getMap(key); + rMap.addListener(listener); + } + /** * 获得缓存的Map * - * @param key - * @return + * @param key 缓存的键值 + * @return map对象 */ public static Map getCacheMap(final String key) { RMap rMap = CLIENT.getMap(key);