From 417c2186c23a3c81994f79959f66a7d410c5c491 Mon Sep 17 00:00:00 2001 From: Ziin Date: Wed, 27 Aug 2025 21:40:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=AF=E5=90=A6=E7=99=BB=E5=BD=95=20AI=20=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HostInfoServiceImpl.java | 6 ++- .../yupi/springbootinit/utils/RedisUtils.java | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/yupi/springbootinit/utils/RedisUtils.java diff --git a/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java b/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java index 3dd990f..4e4157f 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.yupi.springbootinit.model.vo.country.CountryInfoVO; import com.yupi.springbootinit.rabbitMQ.MQSender; import com.yupi.springbootinit.service.HostInfoService; import com.yupi.springbootinit.utils.JsonUtils; +import com.yupi.springbootinit.utils.RedisUtils; import com.yupi.springbootinit.utils.SseEmitterUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; @@ -40,6 +41,8 @@ public class HostInfoServiceImpl extends ServiceImpl i private RedisTemplate redisTemplate; + @Resource + private RedisUtils redisUtils; @Resource private MQSender mqSender; @@ -72,8 +75,7 @@ public class HostInfoServiceImpl extends ServiceImpl i } // Boolean o = (Boolean) redisTemplate.opsForValue().get("ai_login:"+newHosts.get(0).getTenantId()); - Set keys = redisTemplate.keys("ai_login:"+newHosts.get(0).getTenantId()+":*"); - if (!keys.isEmpty()) { + if (redisUtils.hasKeyByPrefix("ai_login:"+ newHosts.get(0).getTenantId())) { newHosts.forEach(newHost -> { mqSender.send(newHost.getTenantId(),newHost); }); diff --git a/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java b/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java new file mode 100644 index 0000000..30b4cc3 --- /dev/null +++ b/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java @@ -0,0 +1,38 @@ +package com.yupi.springbootinit.utils; + +/* + * @author: ziin + * @date: 2025/8/27 20:35 + */ + +import org.springframework.data.redis.core.Cursor; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ScanOptions; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; + + +@Component +public class RedisUtils { + + + @Resource + private RedisTemplate redisTemplate; + + public boolean hasKeyByPrefix(String prefix) { + return Boolean.TRUE.equals( + redisTemplate.execute((RedisCallback) conn -> { + try (Cursor cursor = conn.scan( + ScanOptions.scanOptions() + .match(prefix + ":*") + .count(100) // 每次返回条数,可调整 + .build())) { + return cursor.hasNext(); // 只要存在一条就返回 true + } + }) + ); + } +}