From df9a57c379f383129e8fc33c7d886f8c8fdd9b35 Mon Sep 17 00:00:00 2001
From: Lucien_Lu <lushangpeng@hotmail.com>
Date: 星期二, 29 十月 2024 09:29:15 +0800
Subject: [PATCH] !592 替换RedisUtils中的过时方法 * update:替换RedisUtils中的废弃方法getKeysStreamByPattern及trySetRate
---
ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java | 30 ++++++++++++++++++++++++++----
1 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
index 6fa3b74..a0efde6 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
@@ -4,6 +4,7 @@
import lombok.NoArgsConstructor;
import org.dromara.common.core.utils.SpringUtils;
import org.redisson.api.*;
+import org.redisson.api.options.KeysScanOptions;
import java.time.Duration;
import java.util.Collection;
@@ -37,7 +38,7 @@
*/
public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) {
RRateLimiter rateLimiter = CLIENT.getRateLimiter(key);
- rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS);
+ rateLimiter.trySetRate(rateType, rate, Duration.ofSeconds(rateInterval));
if (rateLimiter.tryAcquire()) {
return rateLimiter.availablePermits();
} else {
@@ -518,13 +519,34 @@
/**
* 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�(鍏ㄥ眬鍖归厤蹇界暐绉熸埛 鑷鎷兼帴绉熸埛id)
- *
+ * <P>
+ * limit-璁剧疆鎵弿鐨勯檺鍒舵暟閲�(榛樿涓�0,鏌ヨ鍏ㄩ儴)
+ * pattern-璁剧疆閿殑鍖归厤妯″紡(榛樿涓簄ull)
+ * chunkSize-璁剧疆姣忔鎵弿鐨勫潡澶у皬(榛樿涓�0,鏈柟娉曡缃负1000)
+ * type-璁剧疆閿殑绫诲瀷(榛樿涓簄ull,鏌ヨ鍏ㄩ儴绫诲瀷)
+ * </P>
+ * @see KeysScanOptions
* @param pattern 瀛楃涓插墠缂�
* @return 瀵硅薄鍒楄〃
*/
public static Collection<String> keys(final String pattern) {
- Stream<String> stream = CLIENT.getKeys().getKeysStreamByPattern(pattern);
- return stream.collect(Collectors.toList());
+ return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
+ }
+
+ /**
+ * 閫氳繃鎵弿鍙傛暟鑾峰彇缂撳瓨鐨勫熀鏈璞″垪琛�
+ * @param keysScanOptions 鎵弿鍙傛暟
+ * <P>
+ * limit-璁剧疆鎵弿鐨勯檺鍒舵暟閲�(榛樿涓�0,鏌ヨ鍏ㄩ儴)
+ * pattern-璁剧疆閿殑鍖归厤妯″紡(榛樿涓簄ull)
+ * chunkSize-璁剧疆姣忔鎵弿鐨勫潡澶у皬(榛樿涓�0)
+ * type-璁剧疆閿殑绫诲瀷(榛樿涓簄ull,鏌ヨ鍏ㄩ儴绫诲瀷)
+ * </P>
+ * @see KeysScanOptions
+ */
+ public static Collection<String> keys(final KeysScanOptions keysScanOptions) {
+ Stream<String> keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);
+ return keysStream.collect(Collectors.toList());
}
/**
--
Gitblit v1.9.3