2013-10-11 4 views
0

Я пытаюсь создать очередь объектов JSON с помощью Redis.Node & Redis queue

Я в настоящее время использую Zadd создать упорядоченный набор:

var entry = {"name": "Hank", "question": "Where am I?"}; 
client.zadd("entries", 1, JSON.stringify(entry)); 

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

ответ

0

Если вы пытаетесь создать очередь, где новые элементы добавляются в верхнюю часть очереди, вы, вероятно, не хотите, чтобы отсортированный набор вообще.

Сортированные наборы действительно полезны там, где у вас есть список вещей, которые имеют разные оценки, например, таблицу лидеров для видеоигры или рейтинг лучших мест для жизни. Если вы спрашиваете, как увеличить оценку существующей записи, это легко, просто добавьте ее снова с новой оценкой. Так, client.zadd("entries", 2, JSON.stringify(entry)); обновит счет до 2. Из redis.io:

Добавляет все указанные элементы с указанными баллами в отсортированных набора хранятся в ключе. Если указанный член уже является членом сортированного набора , оценка обновляется, и элемент повторно вставляется в правильное положение , чтобы обеспечить правильный порядок.

Звучит так, как будто вы спрашиваете, как увеличить оценку всех существующих предметов, когда вы добавляете новый элемент в набор. Это будет похоже на «толкание» каждого из этих существующих предметов на одно место и помещение нового в верхнюю часть. Это не то, для каких отсортированных наборов и для чего предназначены списки redis. И нажатие - это именно то, что вы сделали бы. Используйте LPUSH для добавления элементов в список.

+0

Отлично. Благодарю. Я новичок в redis и почему-то пропустил LPUSH. – user2871322

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