From a60127323e527d64a256f0c854856709596d49f4 Mon Sep 17 00:00:00 2001 From: lengleng Date: Wed, 6 Aug 2025 11:47:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sequence):=20=E4=BC=98=E5=8C=96Redis?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8F=B7=E7=94=9F=E6=88=90=E5=99=A8=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用Lombok的@Getter/@Setter简化stringRedisTemplate和stepStart字段访问 - 移除冗余的空字符串检查方法isEmpty - 清理未使用的getter/setter方法减少代码量 - 保持原有核心序列号生成逻辑不变 --- .../range/impl/redis/RedisSeqRangeMgr.java | 99 +++++++++---------- 1 file changed, 44 insertions(+), 55 deletions(-) diff --git a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/redis/RedisSeqRangeMgr.java b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/redis/RedisSeqRangeMgr.java index 628287229..e668f8123 100755 --- a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/redis/RedisSeqRangeMgr.java +++ b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/redis/RedisSeqRangeMgr.java @@ -3,6 +3,8 @@ package com.pig4cloud.pigx.common.sequence.range.impl.redis; import com.pig4cloud.pigx.common.sequence.exception.SeqException; import com.pig4cloud.pigx.common.sequence.range.SeqRange; import com.pig4cloud.pigx.common.sequence.range.SeqRangeMgr; +import lombok.Getter; +import lombok.Setter; import org.springframework.data.redis.core.StringRedisTemplate; /** @@ -12,69 +14,56 @@ import org.springframework.data.redis.core.StringRedisTemplate; */ public class RedisSeqRangeMgr implements SeqRangeMgr { - /** - * 前缀防止key重复 - */ - private final static String KEY_PREFIX = "x_sequence_"; + /** + * 前缀防止key重复 + */ + private final static String KEY_PREFIX = "x_sequence_"; - /** - * redis客户端 - */ - private StringRedisTemplate stringRedisTemplate; + /** + * redis客户端 + */ + @Setter + @Getter + private StringRedisTemplate stringRedisTemplate; - /** - * 区间步长 - */ - private int step = 1000; + /** + * 区间步长 + */ + private int step = 1000; - /** - * 区间起始位置,真实从stepStart+1开始 - */ - private long stepStart = 0; + /** + * 区间起始位置,真实从stepStart+1开始 + */ + @Setter + private long stepStart = 0; - /** - * 标记业务key是否存在,如果false,在取nextRange时,会取check一把 这个boolean只为提高性能,不用每次都取redis check - */ - private volatile boolean keyAlreadyExist; + /** + * 标记业务key是否存在,如果false,在取nextRange时,会取check一把 这个boolean只为提高性能,不用每次都取redis check + */ + private volatile boolean keyAlreadyExist; - @Override - public SeqRange nextRange(String name) throws SeqException { - if (!keyAlreadyExist) { + @Override + public SeqRange nextRange(String name) throws SeqException { + if (!keyAlreadyExist) { - if (Boolean.FALSE.equals(stringRedisTemplate.hasKey(getRealKey(name)))) { - // 第一次不存在,进行初始化,setnx不存在就set,存在就忽略 - stringRedisTemplate.opsForValue().setIfAbsent(getRealKey(name), String.valueOf(stepStart)); - } - keyAlreadyExist = true; - } + if (!stringRedisTemplate.hasKey(getRealKey(name))) { + // 第一次不存在,进行初始化,setnx不存在就set,存在就忽略 + stringRedisTemplate.opsForValue().setIfAbsent(getRealKey(name), String.valueOf(stepStart)); + } + keyAlreadyExist = true; + } - Long max = stringRedisTemplate.opsForValue().increment(getRealKey(name), step); - Long min = max - step + 1; - return new SeqRange(min, max); - } + Long max = stringRedisTemplate.opsForValue().increment(getRealKey(name), step); + Long min = max - step + 1; + return new SeqRange(min, max); + } + private String getRealKey(String name) { + return KEY_PREFIX + name; + } - private String getRealKey(String name) { - return KEY_PREFIX + name; - } + private boolean isEmpty(String str) { + return null == str || str.trim().isEmpty(); + } - private boolean isEmpty(String str) { - return null == str || str.trim().length() == 0; - } - - public long getStepStart() { - return stepStart; - } - - public void setStepStart(long stepStart) { - this.stepStart = stepStart; - } - - public StringRedisTemplate getStringRedisTemplate() { - return stringRedisTemplate; - } - - public void setStringRedisTemplate(StringRedisTemplate stringRedisTemplate) { - this.stringRedisTemplate = stringRedisTemplate; - } }