redis setNX 锁来实现防止重复提交的
来源:互联网 发布:golang flag 用法 编辑:程序博客网 时间:2024/05/23 12:57
实现重复提交方式有很多种类,这里仅仅写一个用redis来防止重复提交的方式.redis是单进程单线程的
我们是利用setNX来实现用户在执行完成指定业务逻辑之后,才可以在再次执行该业务逻辑
RedisConnection redis=redisTemplate.getConnectionFactory().getConnection();//获取当前时间 Date currentTime=new Date();Calendar c=Calendar.getInstance();c.setTime(currentTime);c.add(Calendar.MINUTE, 10);//setNX如果这个KEY存在那个为TURE否者为false,我们把这个键的值设置为当时的时间加上10分钟,这样如果下次请求如果发现Value的值大于当前时间10分钟//,那么我们可以用getSet重新设定新的锁.//redis是单进程单线程的 if(!redis.setNX((String.valueOf(asdf)+"_investment").getBytes(), (String.valueOf(c.getTimeInMillis())).getBytes())){ byte [] value= redis.get((String.valueOf(asdf)+"_investment").getBytes()); Date valueTimeOut= new Date(Long.parseLong(new String (value)));//获得锁过期时间 if(currentTime.compareTo(valueTimeOut)>0){//锁已经过期 //重新设置新的锁 redis.getSet((String.valueOf(asdf)+"_investment").getBytes(),(String.valueOf(c.getTimeInMillis())).getBytes()); }else{ return "REAPAT_SUBMIT"; }}//开始执行投资逻辑//Object investBus= pjp.proceed();//投资逻辑System.out.println("开始所谓的投资逻辑");redis.del((String.valueOf(asdf)+"_investment").getBytes());redis.close();
阅读全文
0 0
- redis setNX 锁来实现防止重复提交的
- redis分布式锁-SETNX实现
- redis分布式锁-SETNX实现
- redis分布式锁-SETNX实现
- redis分布式锁-SETNX实现
- redis防止重复提交
- 【Redis】 redis setnx命令实现分布式锁
- 使用Redis SETNX 命令实现分布式锁
- Redis SETNX 命令实现分布式锁
- 使用Redis SETNX 命令实现分布式锁
- Redis SETNX命令实现分布式锁
- 有关redis中setnx实现锁
- 使用Redis SETNX 命令实现分布式锁
- 实现分布式锁:Redis SETNX 命令
- 使用Redis SETNX 命令实现分布式锁
- 使用Redis SETNX 命令实现分布式锁
- 使用Redis SETNX 命令实现分布式锁
- 使用Redis SETNX 命令实现分布式锁
- CF697D 树形DP
- 微信公众帐号开发教程第4篇-----开发模式启用及接口配置Java
- 动态规划:HDU1069-Monkey and Banana
- 初学结构体
- vijos1264 神秘的咒语
- redis setNX 锁来实现防止重复提交的
- ActiveMQ学习笔记(1)——JMS的概念
- java SE 数据类型
- Spring boot中mongodb的使用
- 10W级数据更新操作__生产消费者模式
- 文章标题
- Android studio 引用so错误
- php发送get、post请求的6种方法简明总结
- ORA-00604