@Override
    public V put(K key, V value, Duration ttl) {
        return get(putAsync(key, value, ttl));
    }
@Test
    public void testGetAllTTL() throws InterruptedException {
        RMapCacheNative<Integer, Integer> map = redisson.getMapCacheNative("getAll");
        map.put(1, 100);
        map.put(2, 200, Duration.ofSeconds(1));
        map.put(3, 300, Duration.ofSeconds(1));
        map.put(4, 400);

        Map<Integer, Integer> filtered = map.getAll(new HashSet<Integer>(Arrays.asList(2, 3, 5)));

        Map<Integer, Integer> expectedMap = new HashMap<Integer, Integer>();
        expectedMap.put(2, 200);
        expectedMap.put(3, 300);
        Assertions.assertEquals(expectedMap, filtered);

        Thread.sleep(1000);

        Map<Integer, Integer> filteredAgain = map.getAll(new HashSet<Integer>(Arrays.asList(2, 3, 5)));
        Assertions.assertTrue(filteredAgain.isEmpty());
        map.destroy();
    }