From 9bc2d2981b540aa291cfecde5d33615df56a078b Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 22 七月 2022 09:59:19 +0800 Subject: [PATCH] update springboot 2.7.1 => 2.7.2 update hutool 5.8.3 => 5.8.4 update okhttp 4.9.1 => 4.10.0 update lock4j 2.2.1 => 2.2.2 update aws-java-sdk-s3 1.12.248 => 1.12.264 修复依赖安全漏洞 update aliyun.sms 2.0.9 => 2.0.16 update tencent.sms 3.1.537 => 3.1.555 update guava 30.0-jre => 31.1-jre --- ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java | 71 +++++++++++++++++++++++++++++++++-- 1 files changed, 67 insertions(+), 4 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 b0f35d8..20f3ea3 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 @@ -1,10 +1,10 @@ package com.ruoyi.common.utils.redis; -import cn.hutool.core.collection.IterUtil; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.redisson.api.*; +import org.redisson.config.Config; import java.time.Duration; import java.util.Collection; @@ -12,6 +12,8 @@ import java.util.Map; import java.util.Set; import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * redis 宸ュ叿绫� @@ -24,6 +26,14 @@ 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(); + } /** * 闄愭祦 @@ -365,14 +375,67 @@ } /** + * 璁剧疆鍘熷瓙鍊� + * + * @param key Redis閿� + * @param value 鍊� + */ + public static void setAtomicValue(String key, long value) { + RAtomicLong atomic = CLIENT.getAtomicLong(key); + atomic.set(value); + } + + /** + * 鑾峰彇鍘熷瓙鍊� + * + * @param key Redis閿� + * @return 褰撳墠鍊� + */ + public static long getAtomicValue(String key) { + RAtomicLong atomic = CLIENT.getAtomicLong(key); + return atomic.get(); + } + + /** + * 閫掑鍘熷瓙鍊� + * + * @param key Redis閿� + * @return 褰撳墠鍊� + */ + public static long incrAtomicValue(String key) { + RAtomicLong atomic = CLIENT.getAtomicLong(key); + return atomic.incrementAndGet(); + } + + /** + * 閫掑噺鍘熷瓙鍊� + * + * @param key Redis閿� + * @return 褰撳墠鍊� + */ + public static long decrAtomicValue(String key) { + RAtomicLong atomic = CLIENT.getAtomicLong(key); + return atomic.decrementAndGet(); + } + + /** * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛� * * @param pattern 瀛楃涓插墠缂� * @return 瀵硅薄鍒楄〃 */ public static Collection<String> keys(final String pattern) { - Iterable<String> iterable = CLIENT.getKeys().getKeysByPattern(pattern); - return IterUtil.toList(iterable); + Stream<String> stream = CLIENT.getKeys().getKeysStreamByPattern(getNameMapper().map(pattern)); + return stream.map(key -> getNameMapper().unmap(key)).collect(Collectors.toList()); + } + + /** + * 鍒犻櫎缂撳瓨鐨勫熀鏈璞″垪琛� + * + * @param pattern 瀛楃涓插墠缂� + */ + public static void deleteKeys(final String pattern) { + CLIENT.getKeys().deleteByPattern(getNameMapper().map(pattern)); } /** @@ -382,6 +445,6 @@ */ public static Boolean hasKey(String key) { RKeys rKeys = CLIENT.getKeys(); - return rKeys.countExists(key) > 0; + return rKeys.countExists(getNameMapper().map(key)) > 0; } } -- Gitblit v1.9.3