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

embedded/2025/1/12 18:47:38/
htmledit_views">

 使用 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 {@Autowiredprivate 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;}
}


http://www.ppmy.cn/embedded/152865.html

相关文章

Nginx:HTTP 方法控制

什么是 HTTP 方法控制? HTTP 方法控制 是指在 Nginx 中配置规则,以限制哪些 HTTP 请求方法被允许访问特定资源。HTTP 定义了多种请求方法,每种方法都有其特定用途: GET:用于请求获取指定资源。POST:用于向指定资源提交数据,通常用于提交表单或上传文件。PUT:用于更新指…

ubuntu报错:没有在该文件夹中粘贴文件的权限

1 现象&#xff1a; 近期给ubuntu扩展了硬盘&#xff0c;但是在其中进行文件操作时提示“没有在该文件夹中粘贴文件的权限” 2 原因&#xff1a; 新增硬盘挂载地址为“/home/username/data/” 终端输入 ls -ld /home/username/data/输出 drwxr-xr-x 3 root root 4096 1月…

Ubuntu平台虚拟机软件学习笔记

Ubuntu平台上常见虚拟机软件 VirtualBox [Download]KVM/QEMU 1. VirtualBox 1.1 查看安装版本 VBoxManage -V2. KVM/QEMU KVM: Kernel-based Virtual Machine QEMU: Quick EMUlator 通义千问&#xff1a; virt-manager 既不是QEMU也不是KVM&#xff0c;而是用于管理和创建…

测试用例颗粒度说明

当我们在编写测试用例时&#xff0c;总是会遇到一个问题&#xff1a;如何确定测试用例的颗粒度&#xff1f;测试用例过于粗糙&#xff0c;可能无法全面覆盖系统的细节&#xff1b;而颗粒度过细&#xff0c;又会导致测试重复、冗余。掌握合适的颗粒度&#xff0c;不仅可以提高测…

编程范式、设计模式和算法之间的关系

编程范式、设计模式和算法是软件开发中的三个重要概念&#xff0c;它们各自关注不同的方面&#xff0c;但又相互关联&#xff0c;共同影响着程序的设计和实现。以下是对三者关系的解析&#xff1a; ### 编程范式&#xff08;Programming Paradigms&#xff09; 编程范式定义了…

使用 Flask 搭建 Mock Server

使用 Flask 搭建 Mock Server 主要是通过模拟一些 HTTP 接口来返回预定的响应&#xff0c;这样前端或其他服务可以进行开发和测试&#xff0c;而无需依赖实际的后端服务。Flask 是一个非常轻量级的 Python Web 框架&#xff0c;因此非常适合用于构建 Mock Server。 以下将详细…

QT中引入OpenCV库总结(qmake方式和cmake方式)

文章目录 前言opencv环境配置一、opencv库获取的两种方式二、qmake和cmake配置2.1、 qmake2.2、cmake2.2.1、引入opencv示例 三、qt与opencv对应关系四、问题 前言 我的软件环境&#xff0c;写在前面 Windows10QT5.12.12VS2017OpenCV4.5.4 opencv环境配置 一、opencv库获取…

【前端面试题】前端中的两个外边距bug以及什么是BFC

外边距合并问题 兄弟组件中&#xff0c;如果一个设置margin-bottom&#xff0c;另一个设置margin-top&#xff0c;会导致外边距出现合并的问题&#xff0c;例如box1设置下边距50px&#xff0c;box2设置上边距20px&#xff0c;那么二者之间的外边距进行合并取最大值&#xff0c…