@Override
    public Iterator<V> distributedIterator(final int count) {
        String iteratorName = "__redisson_sorted_set_cursor_{" + getRawName() + "}";
        return distributedIterator(iteratorName, count);
    }
@Test
    public void testDistributedIterator() {
        RSortedSet<String> set = redisson.getSortedSet("set", StringCodec.INSTANCE);

        // populate set with elements
        List<String> strings = IntStream.range(0, 128).mapToObj(i -> "one-" + i).collect(Collectors.toList());
        set.addAll(strings);

        Iterator<String> stringIterator = set.distributedIterator("iterator_{set}", 10);

        // read some elements using iterator
        List<String> result = new ArrayList<>();
        for (int i = 0; i < 64; i++) {
            if (stringIterator.hasNext()) {
                result.add(stringIterator.next());
            }
        }

        // create another iterator instance using the same name
        RSortedSet<String> set2 = redisson.getSortedSet("set", StringCodec.INSTANCE);
        Iterator<String> stringIterator2 = set2.distributedIterator("iterator_{set}", 10);

        assertTrue(stringIterator2.hasNext());

        // read all remaining elements
        stringIterator2.forEachRemaining(result::add);
        stringIterator.forEachRemaining(result::add);

        assertThat(result).containsAll(strings);
        assertThat(result).hasSize(strings.size());
    }