@Override
    public List<Point> geoPos(byte[] key, byte[]... members) {
        List<Object> params = new ArrayList<Object>(members.length + 1);
        params.add(key);
        params.addAll(Arrays.asList(members));
        
        MultiDecoder<Map<Object, Object>> decoder = new ListMultiDecoder2(new ObjectListReplayDecoder2(), new PointDecoder());
        RedisCommand<Map<Object, Object>> command = new RedisCommand<Map<Object, Object>>("GEOPOS", decoder);
        return read(key, StringCodec.INSTANCE, command, params.toArray());
    }
@Test
    public void testGeoPos() {
        connection.geoAdd("key1".getBytes(), new Point(13.361389, 38.115556), "value1".getBytes());
        connection.geoAdd("key1".getBytes(), new Point(15.087269, 37.502669), "value2".getBytes());

        List<Point> s = connection.geoPos("key1".getBytes(), "value1".getBytes(), "value2".getBytes());
        assertThat(s).hasSize(2);

        List<Point> se = connection.geoPos("key2".getBytes(), "value1".getBytes(), "value2".getBytes());
        assertThat(se).isEmpty();
    }