我正在尝试使用Redis创建一个JSON对象队列。
我目前使用ZADD来创建一个有序集:
var entry = {"name": "Hank", "question": "Where am I?"};
client.zadd("entries", 1, JSON.stringify(entry));每次有新条目时,我如何增加分数?
发布于 2013-10-12 02:17:51
如果您试图创建一个队列,其中新项被添加到队列的顶部,那么您可能根本不需要一个排序集。
如果你有一个有着不同分数的东西的列表,比如视频游戏的排行榜,或者最适合居住的地方的排名,那么分类集是非常有用的。如果您在询问如何增加现有条目的分数,这很容易,只需将其与新的分数一起添加即可。因此,client.zadd("entries", 2, JSON.stringify(entry));会将分数更新为2。从redis.io。
将所有具有指定分数的指定成员添加到存储在键处的排序集中。如果指定的成员已经是排序集的成员,则将更新得分,并将元素重新插入到正确的位置,以确保排序正确。
听起来好像你在问,当你向集合中添加一个新项目时,如何增加所有现有项目的得分。这就像“推”每一个现有的项目在一个地方,并把新的一个在顶部。这不是排序集的意义,也是红色列表的确切含义。而且,推正是你会做的事。使用LPUSH在列表中添加元素。
https://stackoverflow.com/questions/19328875
复制相似问题