Почему Spring-data-redis ZSetOperations возвращает операции Set вместо SortedSet? - PullRequest
0 голосов
/ 19 октября 2019

ZSET s используются для хранения отсортированных наборов в Redis. Я использую spring-data-redis для ZSetOperations.

Все методы диапазона возвращают Set<> вместо SortedSet<>, и мне было интересно, в чем причина этого?

См .: https://github.com/spring-projects/spring-data-redis/blob/master/src/main/java/org/springframework/data/redis/core/ZSetOperations.java#L207

Кроме того, поскольку они не возвращают отсортированные наборы, не все операции диапазона reverse становятся избыточными, поскольку порядок все равно не поддерживается, и мы не можем просто получить какой-либо элемент вindex?

Я мог упустить что-то очень очевидное, извините, пожалуйста, мою наивность в этом вопросе.


Мой пример использования:

Я сохраняю значения с датами какГол. Я хочу получить все значения между двумя датами, проверить количество и использовать самую последнюю дату.

Я планировал сделать что-то вроде:

// get reverse sorted values, with most recent date being on top 
SrotedSet<String> values = zSetOperations.rangeByScore(key, this.getBeginDate(), this.getEndDate());
// check values size and do values.get(0) i.e. the most recent date.

Но тип возврата rangeByScore - это Set, поэтому никаких операций get.

  • Я должен получить диапазон с оценкой, а затем сам их отсортировать.

  • Или мне придется преобразовать в массив и получить элемент.

  • Или сделать что-то вроде values.iterator().next()

...