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;
import com.youlai.system.common.constant.RedisKeyConstants;
import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.common.constant.RedisConstants;
import com.youlai.system.common.result.ResultCode;
import com.youlai.system.service.SysConfigService;
import com.youlai.system.util.IPUtils;
@@ -44,18 +43,18 @@ public class RedisRateLimiterFilter extends OncePerRequestFilter {
* @return 是否限流
*/
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);
if (count == null || count == 1) {
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;
if(systemConfig != null){
limit = Long.parseLong(systemConfig.toString());
}else{
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;
}