使用java springboot 使用 Redis 作为限流工具

使用 Redis 作为限流工具

Redis 还可以用于实现限流功能,例如限制每个 IP 地址的访问次数。你可以使用 Redis 的计数器功能来实现这一点。

实现限流逻辑
复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

@Service
public class RateLimiter {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    public boolean isAllowed(String key, int maxRequests, int timeWindowInSeconds) {
        Long requestCount = redisTemplate.opsForValue().increment(key);

        if (requestCount == 1) {
            // 如果是第一次请求,设置过期时间
            redisTemplate.expire(key, timeWindowInSeconds, TimeUnit.SECONDS);
        }

        return requestCount <= maxRequests;
    }
}
相关推荐
前端之虎陈随易6 分钟前
Vite 8正式发布,内置devtool,Wasm SSR 支持
前端·人工智能·typescript·npm·node.js·wasm
AI_567813 分钟前
基于智优达平台的Python教学实践:从环境搭建到自动评测
开发语言·前端·人工智能·后端·python
IT_陈寒13 分钟前
JavaScript开发者必备的5个高效调试技巧,90%的人都不知道最后一个!
前端·人工智能·后端
嘉琪00117 分钟前
前端数组核心方法(高级视角 + 场景 + 精简)——————2026 0309
开发语言·前端·javascript
jarvisuni32 分钟前
GLM5实战测试,挑战Opus4.6 !
前端·数据库
怪侠_岭南一只猿38 分钟前
爬虫阶段一实战练习题二:爬取当当网图书列表
css·爬虫·python·html
c++之路1 小时前
HTTP协议全解析:从原理到Web应用实战
前端·网络协议·http
Lee川1 小时前
从“DOM 操作”到“数据驱动”:Vue 如何重塑前端开发思维
前端·vue.js
tiandyoin1 小时前
Brave(Chrome)浏览器设置选项中文注解
前端·chrome·设置·brave
sibylyue1 小时前
Typescritpt、ES6
前端·javascript·vue.js