Redis - increment 递增方法 | 处理防重复和并发问题
Redis - increment 递增方法 | 处理防重复和并发问题
一、使用场景
- 1.有时因为网路原因,在保存或其他操作时会发生重复提交问题
- 2.针对秒杀、抢购、多个用户同时下单的情况(不过redis针对秒杀只是其中的一环)
二、incr 递增函数介绍
- Redis Incr 命令将 key 中储存的数字值增一。
- 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
- 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
- 本操作的值限制在 64 位(bit)有符号数字表示之内。
INCR 命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。
三、示例
@PostMapping(value = "/testRedis")
public R testRedis(HttpServletRequest request) {// 通过用户ID和访问IP,处理重复请求String key = userId + IPUtils.getIpAddr(request);Object redisKey = redisTemplate.opsForValue().get(key);System.out.println("redis值:" + redisKey);// redis中的key值存在则表示当前这次请求距离上一次请求不超过下面设置的三秒钟,直接返回即可if(redisKey != null){return R.ok("您的操作过快,请刷新重试");}Long count = redisTemplate.opsForValue().increment(key, 1); // 设置递增因子System.out.println("递增的值" + count);redisTemplate.expire(key, 3, TimeUnit.SECONDS); // 设置过期时间 3秒return R.ok("成功");
}
通过这种方法,同样我们也可以用到并发的情况下
四、发散
相关文章:SpringBoot整合Redisson使用分布式锁,模拟茅台抢购场景.
Redis - increment 递增方法 | 处理防重复和并发问题相关推荐
- redis+aop防重复提交
文章目录 1.防重复提交注解 2.redis分布式锁 3.防止重复提交Aop 之前有记录一篇用redis+拦截器防重复提交的内容: redis+拦截器防重复提交 1.防重复提交注解 @Target(E ...
- 防重复请求处理的实践与总结
#防重复处理总结 ##背景 在业务开发中,我们常会面对防止重复请求的问题.当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害.重复请求的后果在交易系统.售后维权,以及支付系统中 ...
- 由防重复点击引发的幂等性问题思考
HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外).也就是说,用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而 ...
- 浅谈C#在网络波动时防重复提交
前几天,公司数据库出现了两条相同的数据,而且时间相同(毫秒也相同).排查原因,发现是网络波动造成了重复提交. 由于网络波动而重复提交的例子也比较多: 网络上,防重复提交的方法也很多,使用redis锁, ...
- 蘑菇街防重复请求处理的实践与总结
2019独角兽企业重金招聘Python工程师标准>>> #防重复处理总结 ##背景 在业务开发中,我们常会面对防止重复请求的问题.当服务端对于请求的响应涉及数据的修改,或状态的变更时 ...
- springBoot防重复提交
一.重复提交原因 由于客户端抖动,人为快速点击,造成服务器重复处理 二.后端防重复提交 1.基于token 访问请求到达服务器,服务器端生成token,分别保存在客户端和服务器.提交请求到达服务器,服 ...
- AOP+自定义注解token令牌和参数防重复提交实战
目录 一.哪些因素会引起重复提交? 二.重复提交会带来哪些问题? 三.订单的防重复提交你能想到几种方案? 四.自定义注解方式 4.1Java核心知识-自定义注解(先了解下什么是自定义注解) 4.1.1 ...
- Java实现防重复提交
欢迎访问我的个人博客:www.ifueen.com 防重复提交的重要性? 在业务开发中,为什么我们要去想办法解决重复提交这一问题发生?网上的概念很多:导致表单重复提交,造成数据重复,增加服务器负载,严 ...
- 工作中的亮点事情-防重复提交
防重复提交(aop): 1.自定义注解,在需要防重的接口添加注解,默认时间200毫秒 2.url+sessionId +关键字 为主键设置一个缓存,存在则直接返回错误信息 定义redis锁 切面.切点 ...
最新文章
- python打开网页存图_python 获取网页图片 保存在本地
- liunx下的DNS配置
- ASP.NET MVC Bundles 用法和说明(打包javascript和css)
- 【计算机网络】数据链路层 : 广域网 ( 广域网概念 | PPP 协议 | PPP 协议功能 | PPP 协议组成 | PPP 协议帧格式 )
- Processing 闪烁的圆 动画效果
- SQL Server游标
- 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...
- jquey 批量操作 checkbox
- LINUX修改.bashrc之后,生效的办法
- 如何使用RDP报表工具预览页面可以出现完整数据而不是只显示一条
- 初识Hadoop(核心组件与应用)
- Python2.6+PyQt4.8+eric4+汉化+开发教程
- mongodb mongoose 的使用
- Typo: In word 'xxx' less... (Ctrl+F1) 去掉错误拼写检查提示
- PyCharm入门(七)PyCharm Evaluation:Your evaluation license expires in 3 days
- java针刺治疗尿潴留,针刺治疗尿潴留52例疗效观察
- 人到中年这种茶要多喝,越喝血管越干净!坚持一个月,头晕眼花不再来!
- python setup.py bdist_wheel生成wheel文件,示例:安装webrtcvad
- [转]静态框架导航,左侧折叠树的样式,类似于treeview
- 北大光华管理学院公开课北京站
热门文章
- 一个入行很长的老鸟给新手的一些建议——转
- 每日一佳——A Support Vector Method for Multivariate Performance Measures(Thorsten Joachims,ICML,2005)
- MOBA类和“吃鸡”游戏为什么对网络延迟要求高?
- 重装系统电脑黑屏开不了机如何处理
- 她的话指引了很多人的未来生活———亦舒
- 荒野今天维护服务器吗,荒野行动1月29日为什么无法登录原因 今天停服更新维护吗?...
- kali Linux的下载与安装
- hdu 2072 单词数(C语言)
- 2020-09-15,小米笔试,java
- Latex 安装及学习教程