Java通过Redis计数器方式限制用户访问Api频率

有时候我们需要限制一个API访问的频率,例如单用户一分钟之内只能访问多少次。
类似于这样的需求很容易用Redis来实现。

	@Log("Api接口每分钟访问次数限制")
	@AuthIgnore
	@PostMapping("getImpose")
	public String getImpose(String name) {
		String data="";
		String num=(String)redisTemplate.opsForValue().get(name);
		if(num==null) {
			redisTemplate.opsForValue().set(name,"2",60,TimeUnit.SECONDS);
			data="第1次访问";
		}else if (num=="10"|| "10".equals(num)) {
			//1分钟内,连续访问10次的时候,就不让访问
			data="访问频繁,一分钟只能访问10次";
			return data;
		}else {
			//每访问一次进行+1
			redisTemplate.opsForValue().increment(name, 1);
			data="第"+num+"次访问";
		}
		return data;
	}

在这里插入图片描述

发布了34 篇原创文章 · 获赞 39 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_45736927/article/details/104801979
今日推荐