@Override
    public String acquire() throws InterruptedException {
        return acquire(-1, TimeUnit.MILLISECONDS);
    }
@Test
    public void testAcquire() {
        RPermitExpirableSemaphore semaphore = redisson.getPermitExpirableSemaphore("test.sync_semaphore");
        semaphore.trySetPermits(1);
        Awaitility.await().atMost(Duration.ofMillis(100)).pollDelay(Duration.ofMillis(10)).untilAsserted(() -> {
            RFuture<String> permit = semaphore.acquireAsync(5000L, TimeUnit.MILLISECONDS);
            assertThat(permit.get()).isNotNull();
        });
    }