我正在编写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本机完成。你将如何实现这一目标?
答案 0 :(得分:1)
听起来像Sorted Set正是您所需要的。
您可以将每个会话的时间戳设置为其得分(请参阅ZADD
),然后您可以使用ZRANGE
,{{3}等命令检索订购的订单},ZRANGEBYSCORE
和ZREVRANGE
。