From 191f08b7a74c461d1914652aed737888967a69f1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 19 十月 2023 16:51:38 +0800
Subject: [PATCH] #地图增加分布式锁

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

diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java
index 95da6dc..33a9694 100644
--- a/src/main/java/com/zy/common/utils/RedisUtil.java
+++ b/src/main/java/com/zy/common/utils/RedisUtil.java
@@ -1,5 +1,6 @@
 package com.zy.common.utils;
 
+import com.baomidou.mybatisplus.toolkit.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -25,11 +26,33 @@
     @Autowired
     private RedisTemplate redisTemplate;
 
+    @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);
+    }
+
+    /**
      * 鎸囧畾缂撳瓨澶辨晥鏃堕棿
      *
      * @param key  閿�

--
Gitblit v1.9.1