@Override
    public Iterable<RedisClusterNode> clusterGetNodes() {
        RedisStrictCommand<List<RedisClusterNode>> cluster
                = new RedisStrictCommand<List<RedisClusterNode>>("CLUSTER", "NODES",
                            new ObjectDecoder(new RedisClusterNodeDecoder(executorService.getServiceManager())));
        return read(null, StringCodec.INSTANCE, cluster);
    }
@Test
    public void testClusterGetNodes() {
        testInCluster(connection -> {
            Iterable<RedisClusterNode> nodes = connection.clusterGetNodes();
            assertThat(nodes).hasSize(6);
            for (RedisClusterNode redisClusterNode : nodes) {
                assertThat(redisClusterNode.getLinkState()).isNotNull();
                assertThat(redisClusterNode.getFlags()).isNotEmpty();
                assertThat(redisClusterNode.getHost()).isNotNull();
                assertThat(redisClusterNode.getPort()).isNotNull();
                assertThat(redisClusterNode.getId()).isNotNull();
                assertThat(redisClusterNode.getType()).isNotNull();
                if (redisClusterNode.getType() == NodeType.MASTER) {
                    assertThat(redisClusterNode.getSlotRange().getSlots()).isNotEmpty();
                } else {
                    assertThat(redisClusterNode.getMasterId()).isNotNull();
                }
            }
        });
    }