只是做个简单的demo测试使用(核心代码)
/*** 单体架构,没有添加锁(可以使用Synchronization实现单体架构同步代码块)* */@RequestMapping("/getVlaue")public String getVlaue(){// redisTemplate.opsForValue().set("num","100");int num = Integer.parseInt(redisTemplate.opsForValue().get("num"));if(num>0){num = num -1;redisTemplate.opsForValue().set("num",zs+"");}else{System.out.println("库存不足");}System.out.println(redisTemplate.opsForValue().get("num"));return redisTemplate.opsForValue().get("num");}使用redis //redis实现(存在两个问题// 1.高并发的情况下,如果两个线程同时进入循环,可能导致加锁失败 。// 2.SETNX 是一个耗时操作,因为它需要判断 Key 是否存在,因为会存在性能问题 。)@RequestMapping("/getRedis")public String getRedis(){String lock ="lock";//为了避免本线程删除其他线程的锁,为每个线程的锁设置唯一的指String clientId = UUID.randomUUID().toString();try {////1.获取锁//redisTemplate.opsForValue().set(lock,clientId);////2.设置过期时间//redisTemplate.expire(lock,10,TimeUnit.SECONDS);//为保证程序的原子性,把1 2两步合并Boolean result = redisTemplate.opsForValue().setIfAbsent(lock,clientId,10,TimeUnit.SECONDS);if(!result){System.out.println("error");return "error";}int num = Integer.parseInt(redisTemplate.opsForValue().get("num"));if(num > 0){num = num -1;//redisTemplate.opsForValue().set("num",num+"");System.out.println("剩余"+num);}else{System.out.println("库存不足");}}finally {//只有值为本线程的值时才释放锁if(clientId.equals(redisTemplate.opsForValue().get("lock"))){redisTemplate.delete(lock);}}return redisTemplate.opsForValue().get("num");}使用redisson,简单实用//合适解决方案@RequestMapping("/getRedisson")public String getRedisson(){String lockKey = "lock";String clientId = UUID.randomUUID().toString();//获取锁RLock lock =redisson.getLock(lockKey);try {//加锁lock.lock(30,TimeUnit.SECONDS);int num = Integer.parseInt(redisTemplate.opsForValue().get("num"));if(num>0){num = num -1;redisTemplate.opsForValue().set("num",num+"");System.out.println("剩余"+num);}else{System.out.println("库存不足");}}finally {//释放锁lock.unlock();}return redisTemplate.opsForValue().get("num");}【redis实现分布式限流 redis实现分布式锁】使用jMeter测试

文章插图
image.png

文章插图
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
