Я использую redis для отслеживания ежедневных просмотров для темы на доске объявлений, которую я создаю. У меня есть другое поле в предметной модели, которое хранит все временные представления для объекта.Итерация через отсортированный набор redis для обновления активной таблицы записей
Я использую отсортированный набор для отслеживания сюжетов, потому что он позволяет мне легко и быстро отображать самые популярные темы сегодня.
Я хочу создать задачу, которая запускается в полночь - итерация через отсортированный набор - добавление подсчета просмотров для определенного предмета в тот же день для всех видов времени. Затем я хочу удалить член после того, как я обновил его.
Что является элегантным способом перебора всех членов в отсортированном списке и обновления их связанного (по ID) активного объекта записи?
Это, как я добавляю вид на тему:
def self.record_view(id)
REDIS.zincrby("views", 1, id)
end
Это, как я получаю количество просмотров на тему:
def views
REDIS.zscore("views", self.id).to_i
end
Спасибо за это - было бы необходимо создать хеш, чтобы отличить ключи от баллов? – someoneinomaha
Необходимо - нет. Элементы с четными индексами - это ключи, при нечетных индексах - баллы. Хотя, клиентская библиотека могла бы сделать лучшую работу и преобразовать ее в хэш или, по крайней мере, в массив массивов. –
Еще раз спасибо за вашу помощь ... – someoneinomaha