利用Redis原子计数器incr实现计数器及接口限流

article/2025/9/26 9:41:10

一、INCR命令介绍

Redis Incr 命令将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。且将key的有效时间设置为长期有效 。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在 64 位(bit)有符号数字表示之内。

因为Redis没有专用的整数类型,所以在内存中是以字符串的形式存储的

二、常见使用场景

1、计数

我们可能常会统计网站页面每天访问量,通过incr命令在redis中设置key,每次增加1,设置24小时过期。

2、限流

 日常的开放平台API一般常有限流,利用redis的incr命令可以实现一般的限流操作。如限制某接口每分钟请求次数上限1000次

    /*** 60秒内最大1000次* @param key  可以设计为用户标识及接口标识组合* @param expireMillis 过期时间60s* @return*/public Boolean limiter(String key, Long expireMillis) {Long count = redisTemplate.opsForValue().increment(key, INCREMENT_STEP);if (1 == count) {redisTemplate.expire(key, expireMillis, TimeUnit.SECONDS);}if (count > 1000) {return Boolean.TRUE;}return Boolean.FALSE;}

3、幂等

MQ防止重复消费也可以利用INCR命令实现,如订单防重,订单5分钟之内只能被消费一次,订单号作为redis的key

/*** 判断5分钟内只能消费一次* @param key  key* @param expireMillis 过期时间* @return*/public Boolean barrier(String key, Long expireMillis) {Long count = redisTemplate.opsForValue().increment(key, INCREMENT_STEP);if (1 == count) {redisTemplate.expire(key, expireMillis, TimeUnit.MILLISECONDS);}if (count > 1) {return Boolean.TRUE;}return Boolean.FALSE;}

参考:https://redis.io/commands/incr


http://chatgpt.dhexx.cn/article/HWGb97Mk.shtml

相关文章

后渗透——内网转发之利用EarthWorm与proxifier搭建正向代理服务器

EarthWorm是一款用于开启 SOCKS v5 代理服务的工具,基于标准 C 开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发。 Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTP…

红蓝对抗之隧道技术第二篇(reGeorg内网穿透、SSH隧道本地Socks代理、SSH远程转发、Earthworm Socks5代理、Tunna正向代理、ICMP隧道、DNS隧道、Frp穿透)

文章目录 隧道应用reGeorg内网穿透SSH本地转发(正向)场景一场景二 SSH远程转发(反向)Earthworm Socks5代理正向代理反向代理 Tunna正向代理ICMP隧道DNS隧道Frp穿透推荐阅读&工具包 隧道应用 在进行内网渗透时,由于外网主机无法直接连接内网主机,所以…

earthworm四步走(解决拨入VPN后使用burp无法抓包的问题)

一、earthworm下载路径:https://github.com/idlefire/ew 二|、解压文件 三、执行命令:ew_for_Win.exe -s ssocksd -l 8888 四、设置burp上游代理

渗透测试之反弹代理(socks代理) (Earthworm工具) (windows和linux中的代理)

反弹代理 内网渗透不光只是反弹一个shell,反弹一个端口,我们更需要对内网进行更深一步的扫描和渗透,这时候就需要设置找到一个代理服务器,充当外网和内网数据转发的节点。 所以出现了反弹代理,也叫反弹socket。 使用…

NOIP 2016 提高组 复赛 第二天 第二题 蚯蚓 earthworm AC代码(单调队列)+15分代码(排序)+35分代码(堆 大顶堆 优先队列)+85分代码(更改堆中元素)

NOIP 2016 提高组 复赛 第二天 第二题 蚯蚓 earthworm AC代码(单调队列)15分代码(排序)35分代码(堆 大顶堆 优先队列)85分代码(更改堆中元素) 总目录详见:NOIP 提高组 复赛 试题 目录 信奥 历年 在线测评地址:https://www.luogu.com.cn/problem/P…

后渗透——内网转发之利用EarthWorm与proxifier搭建反向代理服务器

EarthWorm是一款用于开启 SOCKS v5 代理服务的工具,基于标准 C 开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发。 Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTP…

【教程】使用Earthworm (EW) 做Socks5代理完成内网穿透

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。 考虑到该工具影响很坏,该工具永久停止更新。 介绍: 示意图: 该工具能够以“正向”、“反向”、“…

内网穿透大杀器--EarthWorm

0x00 前言如果感觉本文对你有帮助,请在文章末尾点个赞,谢谢表哥们支持! 当你在内网渗透,并且拿下一台机器的权限时,你是不是觉得已经算是一次完整的渗透了? 不来一次内网漫游,渗透是不完整的&am…

EW(EarthWorm) 反向 socks5 代理

今天本想对学校的内网服务器进行人生中第一次横向渗透,奈何情况不允许,但好歹学习了一些东西,总要写下来保存 工具: EW: https://github.com/idlefire/ew proxychains: https://github.com/rofl0r/proxychains-ng 小米随身wifi…

使用Earthworm (EW) 做Socks5代理

正向代理 1.选择合适的ew文件(将文件ew_…改为ew.exe,为了在命令行少敲几个字母),上传到边缘服务器 2.边缘服务器输入 ew.exe -s ssocksd -l 8000 3.可借助proxifier工具配置攻击机整台机器的代理(proxifier添加代理服务器,ip为边…

EarthWorm结合proxifier的使用学习

拿下一个目标机器的web权限后,如何在本机就可以通过这台被拿下webshell的机器访问内网的其他主机的端口服务呢? 拿下一个shell后,想要访问这个shell主机的其他内网机器的服务,可以用earthworm作为一个流量转发,把ew对应…

内网渗透-Earthworm的简单使用(内网穿透工具)

Earthworm的简单介绍(一) 文章目录 EarthWorm下载地址1. 普通网络 1.1 跳板机存在公网IP 1.1.1 网络环境1.1.2 使用方法1.1.3 流量走向 1.2 跳板机不存在公网IP,可出网 1.2.1 网络环境1.2.2 使用方法1.2.3 流量走向 2. 二级网络 2.1 一级跳…

基于EarthWorm的正反向socks5代理

EarthWorm EarthWorm(ew)是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,可在复杂网络环境下完成…

earthworm系列-earthworm介绍

earthworm的官方网站:http://www.earthwormcentral.org 1 Earthworm 简介 Earthworm 项目始于1993 年,主要目的是为了解决美国地震区域台网出现的问题。当时,区域内的地震台网存在的主要问题有:观测设备陈旧,…

内网渗透工具Earthworm简单使用

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限…

【内网—内网转发】——代理转发_ew(Earthworm)代理转发

文章目录 一、环境准备:二、工具:三、概念:四、学习目的:五、ew(Earthworm)介绍:六、ew(Earthworm)使用说明:七、ew(Earthworm)正向代理(适用于被控服务器拥有一个公网IP):1. 场景:…

苹果xsmax是什么接口_为什么苹果PD快充线头是银色而非金黄色?原来那根本就不是镀的银...

苹果开放第三方授权后,目前市面上已有不少苹果MFi认证的PD快充线,1小时就能充满iPhone X。苹果PD数据线,即USB-C to Lighting数据线,是苹果自家定义的一套数据线规范,一端为Type-C接口,另一端为苹果Lightin…

PD诱骗方案

方案1 如果在小制作中使用pd诱骗,可以参考国产方案 一个网友的设计 芯片手册提供的原理图如下 原理图1 原理图2 原理图3 原理图4 如果在一些小制作中使用还是比较方便的。 方案2 上面方案缺点仅支持PD2.0,不具有PPS,用于一些简单应用还是…

USB-PD 协议解析 - 简单易懂协议详解

目录 1. 简介 2. USB PD3.0 通信流程 2.1 发送数据包 2.2 接收数据包 2.3 双相标记编码(BMC) 2.4 符号编码(4B5B) 3. 数据包格式 3.1 前导码(Preamble) 3.2 SOP*(Start of Packet Sequence) 3.3 …