From 384bce80449b17651937429038c4370dbce60e7b Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 13 十月 2026 15:12:22 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Hugray
---
hugray-server/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/hugray-server/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java b/hugray-server/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
index 00d8687..87ef95d 100644
--- a/hugray-server/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
+++ b/hugray-server/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
@@ -51,6 +51,21 @@
}
/**
+ * 仅当 key 不存在时写入缓存(原子操作,用于频率限制、分布式锁)
+ *
+ * @param key 缓存的键值
+ * @param value 缓存的值
+ * @param timeout 时间
+ * @param timeUnit 时间颗粒度
+ * @return true=写入成功(原先不存在);false=已被占用
+ */
+ public <T> boolean setCacheObjectIfAbsent(final String key, final T value, final Long timeout, final TimeUnit timeUnit)
+ {
+ Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, Duration.of(timeout, timeUnit.toChronoUnit()));
+ return Boolean.TRUE.equals(result);
+ }
+
+ /**
* 设置有效时间
*
* @param key Redis键
--
Gitblit v1.7.1