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