From f9d9eb2d70458839d292a5d34d18ddc79888f80e Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 12 一月 2023 15:11:56 +0800 Subject: [PATCH] fix 修复 新版本 Redisson 存在与 boot 2.X 的兼容性问题 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java | 50 +++++++++++++++++++++++++++++++------------------- 1 files changed, 31 insertions(+), 19 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java index 20f3ea3..1623808 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java @@ -4,7 +4,6 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.redisson.api.*; -import org.redisson.config.Config; import java.time.Duration; import java.util.Collection; @@ -26,14 +25,6 @@ public class RedisUtils { private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); - - public static NameMapper getNameMapper() { - Config config = CLIENT.getConfig(); - if (config.isClusterConfig()) { - return config.useClusterServers().getNameMapper(); - } - return config.useSingleServer().getNameMapper(); - } /** * 闄愭祦 @@ -110,14 +101,13 @@ * @since Redis 6.X 浠ヤ笂浣跨敤 setAndKeepTTL 鍏煎 5.X 鏂规 */ public static <T> void setCacheObject(final String key, final T value, final boolean isSaveTtl) { - RBucket<Object> bucket = CLIENT.getBucket(key); + RBucket<T> bucket = CLIENT.getBucket(key); if (isSaveTtl) { try { bucket.setAndKeepTTL(value); } catch (Exception e) { long timeToLive = bucket.remainTimeToLive(); - bucket.set(value); - bucket.expire(Duration.ofMillis(timeToLive)); + setCacheObject(key, value, Duration.ofMillis(timeToLive)); } } else { bucket.set(value); @@ -132,9 +122,11 @@ * @param duration 鏃堕棿 */ public static <T> void setCacheObject(final String key, final T value, final Duration duration) { - RBucket<T> result = CLIENT.getBucket(key); - result.set(value); - result.expire(duration); + RBatch batch = CLIENT.createBatch(); + RBucketAsync<T> bucket = batch.getBucket(key); + bucket.setAsync(value); + bucket.expireAsync(duration); + batch.execute(); } /** @@ -215,6 +207,15 @@ batch.getBucket(t.toString()).deleteAsync(); }); batch.execute(); + } + + /** + * 妫�鏌ョ紦瀛樺璞℃槸鍚﹀瓨鍦� + * + * @param key 缂撳瓨鐨勯敭鍊� + */ + public static boolean isExistsObject(final String key) { + return CLIENT.getBucket(key).isExists(); } /** @@ -327,6 +328,17 @@ } /** + * 鑾峰緱缂撳瓨Map鐨刱ey鍒楄〃 + * + * @param key 缂撳瓨鐨勯敭鍊� + * @return key鍒楄〃 + */ + public static <T> Set<String> getCacheMapKeySet(final String key) { + RMap<String, T> rMap = CLIENT.getMap(key); + return rMap.keySet(); + } + + /** * 寰�Hash涓瓨鍏ユ暟鎹� * * @param key Redis閿� @@ -425,8 +437,8 @@ * @return 瀵硅薄鍒楄〃 */ public static Collection<String> keys(final String pattern) { - Stream<String> stream = CLIENT.getKeys().getKeysStreamByPattern(getNameMapper().map(pattern)); - return stream.map(key -> getNameMapper().unmap(key)).collect(Collectors.toList()); + Stream<String> stream = CLIENT.getKeys().getKeysStreamByPattern(pattern); + return stream.collect(Collectors.toList()); } /** @@ -435,7 +447,7 @@ * @param pattern 瀛楃涓插墠缂� */ public static void deleteKeys(final String pattern) { - CLIENT.getKeys().deleteByPattern(getNameMapper().map(pattern)); + CLIENT.getKeys().deleteByPattern(pattern); } /** @@ -445,6 +457,6 @@ */ public static Boolean hasKey(String key) { RKeys rKeys = CLIENT.getKeys(); - return rKeys.countExists(getNameMapper().map(key)) > 0; + return rKeys.countExists(key) > 0; } } -- Gitblit v1.9.3