Сохраняется ли порядок в наборе при восстановлении отсортированных наборов с помощью jedis?

Я использую клиент Java Redis "Jedis".

Например, при получении отсортированного набора с использованием zrange клиент указывает, что он возвращает набор, который по определению не имеет гарантии упорядочения.

этот старый вопрос упоминает проблему, но я не нашел ссылки на то, является ли она решено.

Могу ли я сделать это и знать, что порядок будет сохранен?

Set<String> results = jedisCli.zrange(key, start, end);
MyObject[] requestedOrderedObjects = new MyObject[results.size];
int i = 0;
foreach(String result: results) {
    requestedOrderedObjects[i++] = MyObject.loadFromString(result);
}
return requestedOrderedObjects;

Спасибо за любую помощь.


person Daren    schedule 14.04.2014    source источник


Ответы (1)


Порядок сохраняется, проверьте тип Set, который возвращает jedis: это действительно SortedSet, и он упорядочен. Вы правы: API не подсказывает, что он заказан, но не стоит бояться: он работает нормально, иначе во всех моих приложениях были бы невероятные баги.

person zenbeni    schedule 14.04.2014
comment
Я заметил, что он работает нормально, но, поскольку это небольшие тесты на моей локальной машине, я не был полностью уверен. Через несколько месяцев другой человек, пытающийся найти ошибку, когда воспроизводимость сомнительна, разбил бы меня. - person Daren; 14.04.2014