public Set<Tuple> zRevRangeByScoreWithScores(byte[] key, double min, double max) {
   try {
     if (isPipelined()) {
       pipeline(pipeline.zrevrangebyscore(key, max, min, SrpUtils.WITHSCORES, EMPTY_PARAMS_ARRAY));
       return null;
     }
     return SrpUtils.convertTuple(
         client.zrevrangebyscore(key, max, min, SrpUtils.WITHSCORES, EMPTY_PARAMS_ARRAY));
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }
 public Set<byte[]> zRevRangeByScore(byte[] key, double min, double max) {
   try {
     if (isPipelined()) {
       pipeline(pipeline.zrevrangebyscore(key, max, min, null, EMPTY_PARAMS_ARRAY));
       return null;
     }
     return SrpUtils.toSet(
         client.zrevrangebyscore(key, max, min, null, EMPTY_PARAMS_ARRAY).data());
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }
 public Set<byte[]> zRevRangeByScore(byte[] key, double min, double max, long offset, long count) {
   try {
     Object[] limit = SrpUtils.limitParams(offset, count);
     if (isPipelined()) {
       pipeline(pipeline.zrevrangebyscore(key, max, min, null, limit));
       return null;
     }
     return SrpUtils.toSet(client.zrevrangebyscore(key, max, min, null, limit).data());
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }
 public Set<Tuple> zRevRangeByScoreWithScores(
     byte[] key, double min, double max, long offset, long count) {
   try {
     Object[] limit = SrpUtils.limitParams(offset, count);
     if (isPipelined()) {
       pipeline(pipeline.zrevrangebyscore(key, max, min, SrpUtils.WITHSCORES, limit));
       return null;
     }
     return SrpUtils.convertTuple(
         client.zrevrangebyscore(key, max, min, SrpUtils.WITHSCORES, limit));
   } catch (Exception ex) {
     throw convertSrpAccessException(ex);
   }
 }