public Set<byte[]> zRevRange(byte[] key, long start, long end) {
   try {
     if (isPipelined()) {
       pipeline(pipeline.zrevrange(key, start, end, null));
       return null;
     }
     return SrpUtils.toSet(client.zrevrange(key, start, end, null).data());
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }
 public Set<Tuple> zRevRangeWithScores(byte[] key, long start, long end) {
   try {
     if (isPipelined()) {
       pipeline(pipeline.zrevrange(key, start, end, SrpUtils.WITHSCORES));
       return null;
     }
     return SrpUtils.convertTuple(client.zrevrange(key, start, end, SrpUtils.WITHSCORES));
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }