refactor: redis key常量文件命名规范

This commit is contained in:
ray
2024-08-19 00:25:41 +08:00
parent 9e4e95eb43
commit 4cc1962f52
3 changed files with 47 additions and 30 deletions

View File

@@ -0,0 +1,43 @@
package com.youlai.system.common.constant;
/**
* Redis Key常量
*
* @author Theo
* @since 2024-7-29 11:46:08
*/
public interface RedisConstants {
/**
* 系统配置Redis-key
*/
String SYSTEM_CONFIG_KEY = "system:config";
/**
* IP限流Redis-key
*/
String IP_RATE_LIMITER_KEY = "ip:rate:limiter:";
/**
* 防重复提交Redis-key
*/
String RESUBMIT_LOCK_PREFIX = "resubmit:lock:";
/**
* 单个IP请求的最大每秒查询数QPS阈值Key
*/
String IP_QPS_THRESHOLD_LIMIT_KEY = "IP_QPS_THRESHOLD_LIMIT";
/**
* 手机验证码缓存前缀
*/
String MOBILE_VERIFICATION_CODE_PREFIX = "VERIFICATION_CODE:MOBILE:";
/**
* 邮箱验证码缓存前缀
*/
String EMAIL_VERIFICATION_CODE_PREFIX = "VERIFICATION_CODE:EMAIL:";
}

View File

@@ -1,25 +0,0 @@
package com.youlai.system.common.constant;
/**
* Redis Key常量
*
* @author Theo
* @since 2024-7-29 11:46:08
*/
public interface RedisKeyConstants {
/**
* 系统配置Redis-key
*/
String SYSTEM_CONFIG_KEY = "system:config";
/**
* IP限流Redis-key
*/
String IP_RATE_LIMITER_KEY = "ip:rate:limiter:";
/**
* 防重复提交Redis-key
*/
String RESUBMIT_LOCK_PREFIX = "resubmit:lock:";
}

View File

@@ -1,7 +1,6 @@
package com.youlai.system.filter; package com.youlai.system.filter;
import com.youlai.system.common.constant.RedisKeyConstants; import com.youlai.system.common.constant.RedisConstants;
import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.service.SysConfigService; import com.youlai.system.service.SysConfigService;
import com.youlai.system.util.IPUtils; import com.youlai.system.util.IPUtils;
@@ -44,18 +43,18 @@ public class RedisRateLimiterFilter extends OncePerRequestFilter {
* @return 是否限流 * @return 是否限流
*/ */
public boolean rateLimit(String ip) { public boolean rateLimit(String ip) {
String key = RedisKeyConstants.IP_RATE_LIMITER_KEY + ip; String key = RedisConstants.IP_RATE_LIMITER_KEY + ip;
Long count = redisTemplate.opsForValue().increment(key); Long count = redisTemplate.opsForValue().increment(key);
if (count == null || count == 1) { if (count == null || count == 1) {
redisTemplate.expire(key,1, TimeUnit.SECONDS); redisTemplate.expire(key,1, TimeUnit.SECONDS);
} }
Object systemConfig = sysConfigService.getSystemConfig(SystemConstants.IP_QPS_THRESHOLD_LIMIT_KEY); Object systemConfig = sysConfigService.getSystemConfig(RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
long limit = 10; long limit = 10;
if(systemConfig != null){ if(systemConfig != null){
limit = Long.parseLong(systemConfig.toString()); limit = Long.parseLong(systemConfig.toString());
}else{ }else{
log.warn("[RedisRateLimiterFilter.rateLimit]系统配置中未配置IP请求限制QPS阈值配置,使用默认值:{},请检查配置项:{}", log.warn("[RedisRateLimiterFilter.rateLimit]系统配置中未配置IP请求限制QPS阈值配置,使用默认值:{},请检查配置项:{}",
limit,SystemConstants.IP_QPS_THRESHOLD_LIMIT_KEY); limit,RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
} }
return count != null && count > limit; return count != null && count > limit;
} }