2013-10-11 63 views
0

我正在尝试使用Redis创建JSON对象的队列。Node&Redis队列

我目前使用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