@Override
    public List<byte[]> mGet(byte[]... keys) {
        if (isQueueing() || isPipelined()) {
            for (byte[] key : keys) {
                read(key, ByteArrayCodec.INSTANCE, RedisCommands.GET, key);
            }
            return null;
        }

        CommandBatchService es = new CommandBatchService(executorService);
        for (byte[] key: keys) {
            es.readAsync(key, ByteArrayCodec.INSTANCE, RedisCommands.GET, key);
        }
        BatchResult<byte[]> r = (BatchResult<byte[]>) es.execute();
        return r.getResponses();
    }
@Test
    public void testMGet() {
        Map<byte[], byte[]> map = new HashMap<>();
        for (int i = 0; i < 10; i++) {
            map.put(("test" + i).getBytes(), ("test" + i*100).getBytes());
        }
        connection.mSet(map);
        List<byte[]> r = connection.mGet(map.keySet().toArray(new byte[0][]));
        assertThat(r).containsExactly(map.values().toArray(new byte[0][]));
    }