缓存:Redisson,信号量测试
2022/1/27 19:08:24
本文主要是介绍缓存:Redisson,信号量测试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
场景:车库停车。
@Autowired private RedissonClient redissonClient; /** * 尝试获取车位 [信号量] * 信号量:也可以用作限流 * 先在redis中设置一下,有几个车位。 设置park键值 */ @ResponseBody @GetMapping("/index/park") public String park() { RSemaphore park = redissonClient.getSemaphore("park"); boolean acquire = park.tryAcquire(); //占车位 return "获取车位 =>" + acquire; } /** * 尝试释放车位 */ @ResponseBody @GetMapping("/index/go/park") public String goPark() { RSemaphore park = redissonClient.getSemaphore("park"); park.release();//释放一个车位 return "ok => 车位+1"; }
==================================
也可以做分布式限流。
做限流 可以使用 tryAcquire方法。 分布式限流,如果要访问这个服务,获取信号量,做完就+1这样子。
acquire 是阻塞式的,如果没有车位,就等着
tryAcquire的话,就不会,他返回一个bool,如果没车位就算了,不会阻塞着。
如果很多流量过来,就可以tryAcquire,没获取到,正好,可以指定一下没获取到的逻辑,返回错误页面什么的。或者说,服务器繁忙什么的。
这篇关于缓存:Redisson,信号量测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识