微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis实现同一ip接口请求限制

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内实现


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐