@Override
    public int intersection(String... names) {
        return get(intersectionAsync(names));
    }
@Test
    public void testIntersection() throws InterruptedException {
        redisson.getKeys().flushall();
        RSetCache<Integer> cache1 = redisson.getSetCache("cache1");
        cache1.add(1);
        cache1.add(2, 1, TimeUnit.SECONDS);
        cache1.add(5, 1, TimeUnit.SECONDS);
        cache1.add(3);

        RSetCache<Integer> cache2 = redisson.getSetCache("cache2");
        cache2.add(4);
        cache2.add(2, 1, TimeUnit.SECONDS);
        cache2.add(5, 1, TimeUnit.SECONDS);
        cache2.add(7);


        assertThat(cache1.countIntersection("cache2")).isEqualTo(2);
        RSetCache<Integer> cache3 = redisson.getSetCache("cache3");
        assertThat(cache3.intersection("cache1", "cache2")).isEqualTo(2);
        assertThat(cache3).containsExactlyInAnyOrder(2, 5);
        cache3.clear();

        Thread.sleep(1500);

        assertThat(cache1.countIntersection("cache2")).isEqualTo(0);
        assertThat(cache3.intersection("cache1", "cache2")).isEqualTo(0);
        assertThat(cache3).isEmpty();

        assertThat(redisson.getKeys().count()).isEqualTo(2);
        assertThat(redisson.getKeys().getKeys()).containsExactlyInAnyOrder("cache1", "cache2");
    }