75、缓存---分布式锁---Redisson信号量测试

可以用来做分布式限流操作。
我们在redis中存储一个数据为3

    @Autowired
    RedissonClient redissonClient;

    @Autowired
    StringRedisTemplate redisTemplate;

    //信号量测试
    //停车
    @GetMapping("/park")
    @ResponseBody
    public String park() throws InterruptedException {
        RSemaphore park = redissonClient.getSemaphore("park");//获取信号量
        park.acquire();//获取

        return "OK";
    }

    @GetMapping("/go")
    @ResponseBody
    public String go() {
        RSemaphore park = redissonClient.getSemaphore("park");//获取信号量
        park.release();//释放

        return "OK";
    }
boolean b = park.tryAcquire();是尝试获取一个信号量,如果获取到了,操作业务。获取不到,操作业务。
park.acquire();是强制获取,如果获取不到就等待
posted @ 2023-02-01 20:29  不是孩子了  阅读(106)  评论(0)    收藏  举报