2011-12-29 1 views
1

Я хранение и приращению скачать счетчики, как это:Redis моделирование для сортировки строк по количеству

INCRBY downloads:<filename> 1 

Но теперь я хочу, чтобы получить загрузки: * сортируется по значению, так что я могу отобразить список лучших загрузок.

У меня такое чувство, что я могу, вероятно, сохранить это лучше. Я дурачился с:

ZINCRBY downloads 1 <filename> 
ZREVRANGEBYSCORE downloads +inf -inf 

Что же, кажется, дают мне отсортированный список Я хочу (большинство загрузок по крайней мере), но он возвращает только <filename>. Похоже, мне придется запрашивать счеты отдельно.

В основном, в терминах SQL, если я могу:

select filename, count(*) from downloads 

Как структурировать мои данные Redis, чтобы сделать этот запрос возможно/легко?

ответ

4

Вместо этого вы можете получить верхние фильмы с ZREVRANGE z 0 -1 WITHSCORES, которые также вернут результаты.

Также вы можете легко получить «TOP N» фильмы с использованием «N-1» вместо «-1» в приведенной выше команде.

+1

Ответьте в 3 минутах от создателя проекта ?! Теперь это сервис. Спасибо за Redis :) Отлично работает BTW, но я должен подождать 8 минут, чтобы принять ответ. – Rebe

+0

Добро пожаловать :) – antirez