2015-12-11 2 views
0

Извините, если моя терминология неверна, но у меня есть список feed хешей.Redis сортировать по понравившемуся списку хэшей?

Т.е. feed:1, feed:2, feed:3 внутри этих хешей У меня есть ключи и значения. т.е. внутри feed:1 У меня есть likes:300.

У меня есть список под названием feeds:fid, в котором перечислены все кормовые идентификаторы. Так что, если я хочу, чтобы захватить все каналы, я могу просто сделать метод, как это в моем node.js

module.getObjects = function(keys, callback) { 
    helpers.multiKeys(redisClient, 'hgetall', keys, callback); 
}; 

Я не знаю, как я могу отсортировать их так, я получаю все элементы корма сортируется по самым любимым? В идеале я просто хочу получить «самые горячие фиды».

Мне любопытно, как я могу это сделать в redis?

ответ

1

Это будет трудно сделать в вашем текущем наборе вещей. Однако вы можете использовать один сортированный набор для хранения понравившихся файлов вместе с корневыми идентификаторами. Итак, всякий раз, когда подобное происходит, вы сохраняете подобное в своем хеше, а также выполняете операцию ZINCRBY на том же ключе фида в отсортированном наборе.

- В любой момент времени сортированный набор будет содержать идентификаторы подачи в виде ключей и количество символов на клавиатуре в качестве оценки.

- Чтобы получить лучшие или самые горячие фиды, вы просто выполняете операцию ZREVRANGE, которая даст вам лучшие N предметов с максимальным количеством понравившихся.

- Чтобы обе операции были атомарными, вы должны использовать redis transactions, чтобы данные всегда синхронизировались между хешем и отсортированным набором.

+0

Прохладный, это полезно, все еще немного над моей головой, но после рытья, но глубже, я уверен, что это будет иметь больший смысл. У меня есть еще один набор, который выглядит как 'fid: 1: users_liked', который содержит список всех пользователей, которым понравился этот канал, но не уверен, что это полезно. –

+0

Также я попробовал 'ZREVRANGE' перед' ZREVRANGE фидами: fid 0 -1' Я просто верну их, вернувшись наивысшим наименьшим. –

Смежные вопросы