@Override
    public long remainTimeToLive(K key) {
        return get(remainTimeToLiveAsync(key));
    }
@Test
    public void testRemainTimeToLive() {
        RMapCacheNative<String, String> map = redisson.getMapCacheNative("test");
        map.put("1", "2", Duration.ofSeconds(2));
        assertThat(map.remainTimeToLive("1")).isBetween(1900L, 2000L);
        map.put("3", "4");
        assertThat(map.remainTimeToLive("3")).isEqualTo(-1);
        assertThat(map.remainTimeToLive("0")).isEqualTo(-2);

        map.put("5", "6", Duration.ofSeconds(20));
        assertThat(map.remainTimeToLive("1")).isLessThan(9900);

        Map<String, Long> r = map.remainTimeToLive(Set.of("0", "1", "3", "5", "6"));
        assertThat(r.get("0")).isEqualTo(-2);
        assertThat(r.get("1")).isGreaterThan(1);
        assertThat(r.get("3")).isEqualTo(-1);
        assertThat(r.get("5")).isGreaterThan(1);
        assertThat(r.get("6")).isEqualTo(-2);
    }