From 9af70943c966b0c74dcd735217ff18c9d7564221 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 08 七月 2025 16:47:31 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/RedisUtil.java |   39 +++++++++++++++++++--------------------
 1 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java
index 33a9694..b97506c 100644
--- a/src/main/java/com/zy/common/utils/RedisUtil.java
+++ b/src/main/java/com/zy/common/utils/RedisUtil.java
@@ -1,7 +1,7 @@
 package com.zy.common.utils;
 
-import com.baomidou.mybatisplus.toolkit.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisCallback;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
@@ -29,27 +29,8 @@
     @Autowired
     private StringRedisTemplate stringRedisTemplate;
 
-    private static final String LOCK_PREFIX = "lock:";
-    private static final long DEFAULT_EXPIRE_TIME = 10; // 榛樿閿佽繃鏈熸椂闂达紝鍗曚綅涓哄垎閽�
-
     public RedisUtil(RedisTemplate redisTemplate) {
         this.redisTemplate = redisTemplate;
-    }
-
-    /**
-     * Redis鍔犻攣鐨勬搷浣�
-     */
-    public Boolean tryLock(String key) {
-        String redisKey = LOCK_PREFIX + key;
-        return redisTemplate.opsForValue().setIfAbsent(redisKey, "locked", DEFAULT_EXPIRE_TIME, TimeUnit.MINUTES);
-    }
-
-    /**
-     * Redis瑙i攣鐨勬搷浣�
-     */
-    public void unlock(String lockKey) {
-        String redisKey = LOCK_PREFIX + lockKey;
-        redisTemplate.delete(redisKey);
     }
 
     /**
@@ -114,6 +95,11 @@
 
     //============================ String =============================
 
+    public Set<String> searchKeys(String key) {
+        Set<String> keys = redisTemplate.keys(key + "*");
+        return keys;
+    }
+
     /**
      * 鏅�氱紦瀛樿幏鍙�
      *
@@ -149,6 +135,18 @@
     public boolean set(String key, Object value) {
         try {
             redisTemplate.opsForValue().set(key, value);
+            redisTemplate.execute((RedisCallback<Void>) connection -> null);
+            long start = System.currentTimeMillis();
+            while (System.currentTimeMillis() - start < 10000) {//鏈夋晥鏈�10s
+                Object o = redisTemplate.opsForValue().get(key);
+                if (o == null) {
+                    continue;
+                }
+
+                if (o.equals(value)) {
+                    break;
+                }
+            }
             return true;
         } catch (Exception e) {
             e.printStackTrace();
@@ -171,6 +169,7 @@
             } else {
                 set(key, value);
             }
+            redisTemplate.execute((RedisCallback<Void>) connection -> null);
             return true;
         } catch (Exception e) {
             e.printStackTrace();

--
Gitblit v1.9.1