code: @Override
    public byte[] brpoplpush(final byte[] source, final byte[] destination, final int timeout) {
      client.brpoplpush(source, destination, timeout);
      client.setTimeoutInfinite();
      try {
        return client.getBinaryBulkReply();
      } finally {
        client.rollbackTimeout();
      }
    }
docs: Pop a value from a list, push it to another list and return it; or block until one is available
  @param source
  @param destination
  @param timeout
  @return the element