保持集成员在Redis中排序

时间:2014-01-21 09:33:04

标签: nosql redis instant-messaging

我正在编写IM系统。

我正在使用Redis和JSON来存储数据。我有一个带有会话ID的Redis Set。当我检索它们时,我希望按消息的时间戳排序列表:

conversation 9  -> last message timestamp: 1390300000
conversation 12 -> last message timestamp: 1390200000
conversation 7  -> last message timestamp: 1390100000

我有一个Set,其中包含每个用户参与的对话( user1337:对话)以及包含每个对话的JSON编码消息的列表( conversation1234:消息

我想没有必要使用技巧,因此可以使用Redis本机完成。你将如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

听起来像Sorted Set正是您所需要的。

您可以将每个会话的时间戳设置为其得分(请参阅ZADD),然后您可以使用ZRANGE,{{3}等命令检索订购的订单},ZRANGEBYSCOREZREVRANGE