long tstart = System.nanoTime();
List<String> result = null;
long count = 0;
Set<String> range = jedis.zrange(rkeyCached, start, end);
if (range != null && range.size() > 0) {
count = jedis.zcard(rkeyCached);
result = Arrays.asList(range.toArray(new String[range.size()]));
} else {
Pipeline pipeline = shard.pipelined();
List<ConjunctiveFormula> dnf = DNF.convert(formulas);
for (ConjunctiveFormula conjunctiveFormula : dnf) {