2013-10-11 82 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