Джедайс Меняет семантику Redis? - PullRequest
3 голосов
/ 20 декабря 2011

Итак, Redis задает zrange (и связанные с ним команды отсортированного набора) как ЗАКАЗАННЫЙ набор результатов (возможно, список без дубликатов?).

Почему тогда zrange (и связанные API) на Jedis (Официальный и рекомендуемый клиент REDIS) возвращают Set ??? Который по определению не имеет понятия заказа?

Это прямое нарушение семантики операций redis.

Это реализация zrange jedis 2.0.0:


  public Set<byte[]> zrange(final byte[] key, final int start, final int end) {
        checkIsInMulti();
        client.zrange(key, start, end);
        final List<byte[]> members = client.getBinaryMultiBulkReply();
        return new LinkedHashSet<byte[]>(members);
    } 

Авторы Jedis, вы планируете это исправить?

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

В версии 2.2.0 он будет возвращать SorteSet, согласно https://github.com/xetorthio/jedis/issues/244

1 голос
/ 20 декабря 2011

LinkedHashSet - это упорядоченный набор.API, вероятно, следует изменить, чтобы отразить это явно или просто вернуть список.

Этот диалог лучше подходит для списка рассылки, чем для SO.

...