Springboot整合Redis的Cluster集群进行API限流

news2024/11/17 9:46:04

Redis天生就是限流的好帮手!因为它有key,有value,有expire过期时间。我们把ip和url作为表示某个接口的key,而value就是这个ip下访问该url接口的次数,过期时间就是设定的限时时间

我们把限时时间设定为3s,次数设置为9次,意思就是:某一ip在3s内最多只能对该url接口访问9次。每访问一次,value就加1:

如果3s内次数都不超过9,那么该键值对会在3s后过期。

如果次数(redis存储的value)在3s内超过9,就停止该url的正常服务,直到过期时间一到,就全部清零,该url就正常服务了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1118757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、2023 CISSP认证介绍

目录 1.CISSP概况 2.CISSP考题分析 3.备考建议 1.CISSP概况 参考:

【C++代码】二叉搜索树的最近公共祖先,二叉搜索树中的插入操作,删除二叉搜索树中的节点--代码随想录

题目:二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&a…

Catalan 数 和 Stirling 数

这个也可以理解为栈,用 ( 表示 入栈 , ) 表示出栈 , 任何情况下表示入栈的 ( 都必须大于等于 ) 的个数 这个思路和入栈出栈的思路是等价的

2.1.C++项目:网络版五子棋对战之前置知识

文章目录 一、Websocketpp(一)Websocket介绍(二)报文格式(三)Websocketpp介绍(四)Websocketpp使用1.websocketpp常用接口介绍2. http/websocket服务器 (五)Js…

Vue基础与常用指令,Element基础

1.vue快速入门 vue概述 Vue是一套构建用户界面的渐进式前端框架 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合 通过尽可能简单的API来实现响应数据的绑定和组合的视图组件 特点 易用:在有HTMLCSSJavaScript的基…

http post协议发送本地压缩数据到服务器

1.客户端程序 import requests import os # 指定服务器的URL url "http://192.168.1.9:8000/upload"# 压缩包文件路径 folder_name "upload" file_name "test.7z" headers {Folder-Name: folder_name,File-Name: file_name } # 发送POST请求…

ExelaStealer:新型低成本网络犯罪武器崭露头角

网络犯罪的工具层出不穷,而最新的一款信息窃取器ExelaStealer也开始崭露头角。这种低成本的恶意软件专门针对受损的Windows系统,用于窃取敏感数据。据Fortinet FortiGuard Labs研究员James Slaughter在一份技术报告中表示:“ExelaStealer是一…

Arcgis 数据操作

在进行数据操作的时候,需要注意坐标系要一致,这是前提。 数据类型 文件地理数据库:gbd 个人地理数据库:mdb (Mircosoft Access) 矢量数据:shp 推荐使用gbd数据,效率会更高。 采…

C/C++程序设计和预处理

个人主页:仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏:C语言疑难_仍有未知等待探索的博客-CSDN博客 目录 一、引言 二、程序的翻译环境和执行环境 1、什么是程序 2、程序的翻译环境 3、程序的执行环境 三、预处理 1、预定义符…

排序算法,冒泡排序算法及优化,选择排序SelectionSort,快速排序(递归-分区)

一、冒泡排序算法: 介绍: 冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需…

Nginx虚拟主机的搭建 基于ip 基于端口 基于域名

一、虚拟主机介绍 虚拟主机是一种特殊的软硬件技术,他可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以单独对外提供web服务,这样就可以实现一台主机对多个web服务,每个虚拟主机都是独立的,互相不影响 ng…

卫星业务。。。。

卫星业务 • 卫星运营围绕三个主要部分展开 : – 运营卫星业务的 地面段 – 由所有空间资产组成的 空间段 – 接收卫星服务(如 GPS 或通信)的 用户段 • 1. 地面段 – 在卫星的整个生命周期中,地面段是所有卫星运行的中心。 • 一…

【Javascript】对象中的常规操作(增删改查)

目录 创建对象,并在控制台里打印该对 增 改 删 查 创建对象,并在控制台里打印该对象 增 给person这个对象增加一个性别的属性 对象 . 属性值 改 例如将年龄改为20 删 例如删除性别 查 除了console.log(person.?)查询

Leetcode1838. 最高频元素的频数

Every day a Leetcode 题目来源:1838. 最高频元素的频数 解法1:排序 滑动窗口 发现1:操作后的最高频元素必定可以是数组中已有的某一个元素。 发现2:优先操作距离目标值最近的(小于目标值的)元素。 …

SpringBoot项目创建失败或无法启动,启动报错时的常见问题及解决方案

1、无法启动,没有启动的三角按钮 原因:idea没有将其识别为一个maven项目 解决方案:告诉idea,这是一个maven项目 1.1、如果右侧有Maven项目,刷新一下 1.2、左侧项目鼠标右键,添加Maven框架支持 若没有选择m…

Vue2基础知识(三) 组件化

目录 一 组件1.1 组件的定义1.2 特点1.3 Vue-extend1.4 VueCompent 二 脚手架2.1 安装2.2 结构目录2.3 Render函数2.4 修改默认配置2.5 Ref 属性2.6 Prop 属性2.7 Mixin 属性2.8 插件2.9 Scoped 三 组件3.1 组件的注册3.1.1 局部注册3.1.2 全局注册 3.2 组件的通信3.2.1 父子关…

差分时钟与DDR3

Zynq上的存储器接口 所有 Zynq-7000 AP芯片上的存储器接口单元包括一个动态存储器控制器和几个 静态存储器接口模块。动态存储器控制器可以用于 DDR3、DDR3L、DDR2 和 LPDDR2。 静态存储器控制器支持一个 NAND 闪存接口、一个 Quad-SPI 闪存接口、一个并行数 据总线和并行 NOR …

python中的yolov5结合PyQt5,使用QT designer设计界面没正确启动的解决方法

python中的yolov5结合PyQt5,使用QT designer设计界面没正确启动的解决方法 一、窗体设计test: 默认你已经设计好了窗体后: 这时你需要的是保存生成的untitle.ui到某个文件夹下,然后在命令行中奖.ui转换为.py(,通过​​…

JAVA面经整理(MYSQL篇)

索引: 索引是帮助MYSQL高效获取数据的排好序的数据结构 1)假设现在进行查询数据,select * from user where userID89 2)没有索引是一行一行从MYSQL进行查询的,还有就是数据的记录都是存储在MYSQL磁盘上面的,比如说插入数据的时候是向磁盘上面…

web 安全总结

1、web安全总结 1.1 web安全简介 1.1.1 http协议 http 协议是超文本传输协议-明文传输 https 协议是http协议的基础上进行升级,是数据在传输过程中进行加密 1.1.2 http请求 http请求分为:请求方法、请求头、请求体 GET、PUT、POST、OPTIONS、move、…