pom 依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
application.yml
redis:
port: 6379
password:
host: 127.0.0.1
jedis:
pool:
max-idle: 6 #最大空闲数
max-active: 10 #最大连接数
min-idle: 2 #最小空闲数
timeout: 5000
代码实现
需要拦截的请求
//获取请求ip
String ip = getIpRequest(request);
//设置redis 的key
String key = "reqIP:"+ip;
redis的incrBy方法自动累加器如果key为空默认返回0
Long count = redisCacheUtil.incrBy(key, 1);
if(count == 1){
//设置key的过期时间
redisCacheUtil.set(key,60);
}else if(count>10){
//60秒内如果请求超过10次抛出异常
throw new RuntimeException("操作频繁,请稍后重试!");
}
以上拦截请求操作可以在aop内实现