From dd09d3086b8774e21b016436c57d446a0adfab9c Mon Sep 17 00:00:00 2001 From: Parker Date: Wed, 16 Sep 2020 02:36:12 +0800 Subject: [PATCH] =?UTF-8?q?Redis=20=E5=88=86=E5=B8=83=E5=BC=8F=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/opsli/plugins/redis/RedisPlugin.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/opsli-plugins/opsli-plugins-redis/src/main/java/org/opsli/plugins/redis/RedisPlugin.java b/opsli-plugins/opsli-plugins-redis/src/main/java/org/opsli/plugins/redis/RedisPlugin.java index e780b784..5941b2cb 100644 --- a/opsli-plugins/opsli-plugins-redis/src/main/java/org/opsli/plugins/redis/RedisPlugin.java +++ b/opsli-plugins/opsli-plugins-redis/src/main/java/org/opsli/plugins/redis/RedisPlugin.java @@ -106,7 +106,11 @@ public class RedisPlugin { // ===================== Redis 锁相关 ===================== /* - * 不建议在 Redis集群下使用,且使用时 需要加一个看门口 来自动续命 ,否则会出现锁重入 + * 不建议在 Redis集群下使用 + * + * RedisLock redisLock = new RedisLock() 作为唯一锁凭证 贯穿业务逻辑生命周期 + * redisPlugin.tryLock(redisLock) 加锁 + * redisPlugin.unLock(redisLock) 释放锁 * * 分布式锁需要考虑的问题 * 1、这把锁没有失效时间,一旦解锁操作失败,就会导致锁记录一直在tair中,其他线程无法再获得到锁。 @@ -120,9 +124,8 @@ public class RedisPlugin { * @return identifier 很重要,解锁全靠他 唯一凭证 */ public RedisLock tryLock(RedisLock redisLock) { - //String identifier = UUID.randomUUID().toString().replaceAll("-",""); - String identifier = "aaa"; - + // 锁凭证 + String identifier = UUID.randomUUID().toString().replaceAll("-",""); redisLock = this.tryLock(redisLock,identifier); if(redisLock != null){ log.info("分布式锁 - 开启: 锁名称: "+redisLock.getLockName()+" 锁凭证: \""+redisLock.getIdentifier()+"\"");