企业级服务端防重点思路

本文介绍了如何利用分布式缓存中间件Redis的setNxEx命令在服务端实现防重复请求的策略。当用户短时间内重复发送相同请求时,通过设置过期时间避免对服务端造成意外影响。建议在前端和后端都进行防重复处理,并给出了具体的Redis操作示例和实现关键点。
摘要由CSDN通过智能技术生成

实现思路:

主要是依赖于分布式缓存中间件redis的setNxEx 会设置一个过期时间

场景说明:

用户有时候会由于手抖、恶意、或者硬件设备本身的问题,在极短的时间间隔内重复点击一个按钮多次,即重复向同一个接口发送完全相同的请求多次。为了避免这种情况给服务端处理请求带来意外,需要防重点处理。

防重点有时会做在前端,有时做在后端。但为了避免前后端的相互依赖,建议两个端都做会好一些。

这里提供一个企业级服务端做防重点的思路(已在实际商用中)

图示:

请添加图片描述

前置知识:

概念:

setnx是「SET if Not eXists」的缩写,只有不存在的时候才设置,可以利用它来实现锁的效果。
SETNX key value
若给定的 key 已经存在,则 SETNX 不做任何动作。

SET命令:

SET命令可用选项的基本语法
SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]

EX

到期时间(以秒为单位)

PX

到期时间(以毫秒为单位)

NX

仅在键不存在时设置键

XX

只有在键已存在时才设

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值